Google অ্যাকাউন্ট লিঙ্কিং Google অ্যাকাউন্ট ধারকদের দ্রুত, নির্বিঘ্নে এবং নিরাপদে আপনার পরিষেবার সাথে সংযোগ করতে এবং Google-এর সাথে ডেটা ভাগ করতে সক্ষম করে।
লিঙ্ক করা অ্যাকাউন্ট সাইন-ইন Google এর সাথে ওয়ান ট্যাপ সাইন-ইন সক্ষম করে এমন ব্যবহারকারীদের জন্য যাদের Google অ্যাকাউন্ট ইতিমধ্যেই আপনার পরিষেবার সাথে লিঙ্ক করা আছে। এটি ব্যবহারকারীদের জন্য অভিজ্ঞতা উন্নত করে কারণ তারা তাদের ব্যবহারকারীর নাম এবং পাসওয়ার্ড পুনরায় প্রবেশ না করেই এক ক্লিকে সাইন ইন করতে পারে৷ এটি ব্যবহারকারীদের আপনার পরিষেবাতে ডুপ্লিকেট অ্যাকাউন্ট তৈরি করার সম্ভাবনাও হ্রাস করে।
প্রয়োজনীয়তা
লিঙ্কড অ্যাকাউন্ট সাইন-ইন বাস্তবায়ন করতে, আপনাকে অবশ্যই নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করতে হবে:
- আপনার কাছে একটি Google অ্যাকাউন্ট OAuth লিঙ্কিং বাস্তবায়ন রয়েছে যা OAuth 2.0 অনুমোদন কোড প্রবাহকে সমর্থন করে। আপনার OAuth বাস্তবায়নে নিম্নলিখিত শেষ পয়েন্টগুলি অন্তর্ভুক্ত করতে হবে:
- অনুমোদনের অনুরোধগুলি পরিচালনা করার জন্য অনুমোদনের শেষ পয়েন্ট ।
- টোকেন এন্ডপয়েন্ট অ্যাক্সেসের অনুরোধ পরিচালনা করতে এবং টোকেন রিফ্রেশ করুন।
- ইউজারইনফো এন্ডপয়েন্ট লিঙ্ক করা ব্যবহারকারী সম্পর্কে প্রাথমিক অ্যাকাউন্ট তথ্য পুনরুদ্ধার করতে যা লিঙ্ক করা অ্যাকাউন্ট সাইন-ইন প্রক্রিয়া চলাকালীন ব্যবহারকারীর কাছে প্রদর্শিত হয়।
- আপনার একটি Android অ্যাপ আছে।
এটা কিভাবে কাজ করে
পূর্বশর্ত : ব্যবহারকারী পূর্বে আপনার পরিষেবাতে তাদের অ্যাকাউন্টের সাথে তাদের Google অ্যাকাউন্ট লিঙ্ক করেছেন।
- আপনি ওয়ান ট্যাপ সাইন-ইন ফ্লো চলাকালীন লিঙ্ক করা অ্যাকাউন্টগুলি দেখাতে অপ্ট-ইন করেন৷
- ব্যবহারকারীকে তাদের লিঙ্ক করা অ্যাকাউন্ট দিয়ে আপনার পরিষেবাতে সাইন ইন করার বিকল্প সহ একটি ওয়ান ট্যাপ সাইন-ইন প্রম্পট দেখানো হয়।
- ব্যবহারকারী যদি লিঙ্ক করা অ্যাকাউন্টের সাথে চালিয়ে যেতে পছন্দ করে, Google একটি অনুমোদন কোড সংরক্ষণ করার জন্য আপনার টোকেন এন্ডপয়েন্টে একটি অনুরোধ পাঠায়। অনুরোধটিতে আপনার পরিষেবা দ্বারা জারি করা ব্যবহারকারীর অ্যাক্সেস টোকেন এবং একটি Google অনুমোদন কোড রয়েছে৷
- আপনি একটি Google আইডি টোকেনের জন্য Google অনুমোদন কোড বিনিময় করেন যাতে ব্যবহারকারীর Google অ্যাকাউন্ট সম্পর্কে তথ্য থাকে।
- ফ্লো শেষ হলে আপনার অ্যাপটি একটি আইডি টোকেনও পায় এবং আপনি ব্যবহারকারীকে আপনার অ্যাপে সাইন করার জন্য আপনার সার্ভার দ্বারা প্রাপ্ত আইডি টোকেনে ব্যবহারকারী শনাক্তকারীর সাথে এটি মেলে।
আপনার অ্যান্ড্রয়েড অ্যাপে লিঙ্কড অ্যাকাউন্ট সাইন-ইন প্রয়োগ করুন
আপনার অ্যান্ড্রয়েড অ্যাপে লিঙ্কড অ্যাকাউন্ট সাইন-ইন সমর্থন করতে, অ্যান্ড্রয়েড বাস্তবায়ন গাইডের নির্দেশাবলী অনুসরণ করুন।
Google থেকে অনুমোদন কোড অনুরোধগুলি পরিচালনা করুন
Google আপনার টোকেন এন্ডপয়েন্টে একটি অনুমোদন কোড সংরক্ষণ করার জন্য একটি POST অনুরোধ করে যা আপনি ব্যবহারকারীর আইডি টোকেনের জন্য বিনিময় করেন। অনুরোধটিতে ব্যবহারকারীর অ্যাক্সেস টোকেন এবং একটি Google জারি করা OAuth2 অনুমোদন কোড রয়েছে৷
অনুমোদন কোড সংরক্ষণ করার আগে, আপনাকে অবশ্যই যাচাই করতে হবে অ্যাক্সেস টোকেনটি আপনার দ্বারা Google-কে দেওয়া হয়েছে, যা client_id
দ্বারা চিহ্নিত করা হয়েছে।
HTTP অনুরোধ
নমুনা অনুরোধ
POST /token HTTP/1.1
Host: server.example.com
Content-Type: application/x-www-form-urlencoded
code=GOOGLE_AUTHORIZATION_CODE
&grant_type=urn:ietf:params:oauth:grant-type:reciprocal
&client_id=CLIENT_ID
&client_secret=CLIENT_SECRET
&access_token=ACCESS_TOKEN
আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট অবশ্যই নিম্নলিখিত অনুরোধের পরামিতিগুলি পরিচালনা করতে সক্ষম হবে:
টোকেন এন্ডপয়েন্ট প্যারামিটার | |
---|---|
code | প্রয়োজনীয় Google OAuth2 অনুমোদন কোড |
client_id | প্রয়োজনীয় ক্লায়েন্ট আইডি যা আপনি Google এ ইস্যু করেছেন |
client_secret | প্রয়োজনীয় ক্লায়েন্ট সিক্রেট যা আপনি Google এ জারি করেছেন |
access_token | প্রয়োজনীয় অ্যাক্সেস টোকেন যা আপনি Google এ ইস্যু করেছেন। আপনি ব্যবহারকারীর প্রসঙ্গ পেতে এটি ব্যবহার করবেন |
grant_type | প্রয়োজনীয় মান অবশ্যই urn:ietf:params:oauth:grant-type:reciprocal এ সেট করা আবশ্যক |
আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্টকে নিম্নলিখিতগুলি করে POST অনুরোধে সাড়া দেওয়া উচিত:
-
client_id
দ্বারা চিহ্নিত Google-কেaccess_token
দেওয়া হয়েছে তা যাচাই করুন। - অনুরোধটি বৈধ হলে একটি HTTP 200 (ওকে) প্রতিক্রিয়া দিয়ে সাড়া দিন এবং Google আইডি টোকেনের জন্য প্রমাণীকরণ কোড সফলভাবে বিনিময় করা হয়, অথবা অনুরোধটি অবৈধ হলে একটি HTTP ত্রুটি কোড।
HTTP প্রতিক্রিয়া
সফলতা
HTTP স্ট্যাটাস কোড 200 ওকে রিটার্ন করুন
নমুনা সাফল্য প্রতিক্রিয়া
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{}
ত্রুটি
একটি অবৈধ HTTP অনুরোধের ক্ষেত্রে, নিম্নলিখিত HTTP ত্রুটি কোডগুলির মধ্যে একটি দিয়ে সাড়া দিন:
HTTP স্ট্যাটাস কোড | শরীর | বর্ণনা |
---|---|---|
400 | {"error": "invalid_request"} | অনুরোধটিতে একটি প্যারামিটার নেই তাই সার্ভার অনুরোধটি নিয়ে এগিয়ে যেতে পারে না। অনুরোধে একটি অসমর্থিত প্যারামিটার অন্তর্ভুক্ত থাকলে বা একটি পরামিতি পুনরাবৃত্তি করলেও এটি ফেরত দেওয়া হতে পারে |
401 | {"error": "invalid_request"} | ক্লায়েন্ট প্রমাণীকরণ ব্যর্থ হয়েছে, যেমন অনুরোধে যদি একটি অবৈধ ক্লায়েন্ট আইডি বা গোপন থাকে |
401 | {"error": "invalid_token"} প্রতিক্রিয়া শিরোনামে "WWW- প্রমাণীকরণ: বহনকারী" প্রমাণীকরণ চ্যালেঞ্জ অন্তর্ভুক্ত করুন | অংশীদার অ্যাক্সেস টোকেন অবৈধ৷ |
403 | {"error": "insufficient_permission"} প্রতিক্রিয়া শিরোনামে "WWW- প্রমাণীকরণ: বহনকারী" প্রমাণীকরণ চ্যালেঞ্জ অন্তর্ভুক্ত করুন | অংশীদার অ্যাক্সেস টোকেনে রেসিপ্রোকাল OAuth সম্পাদন করার জন্য প্রয়োজনীয় সুযোগ(গুলি) থাকে না |
500 | {"error": "internal_error"} | সার্ভার ত্রুটি |
ত্রুটি প্রতিক্রিয়া নিম্নলিখিত ক্ষেত্র থাকা উচিত:
ত্রুটি প্রতিক্রিয়া ক্ষেত্র | |
---|---|
error | প্রয়োজনীয় ত্রুটি স্ট্রিং |
error_description | ত্রুটির মানব পাঠযোগ্য বর্ণনা |
error_uri | ইউআরআই যা ত্রুটি সম্পর্কে আরও বিশদ প্রদান করে |
নমুনা ত্রুটি 400 প্রতিক্রিয়া
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"error": "invalid_request",
"error_description": "Request was missing the 'access_token' parameter."
}
আইডি টোকেনের জন্য এক্সচেঞ্জ অনুমোদন কোড
আপনাকে একটি Google ID টোকেনের জন্য প্রাপ্ত অনুমোদন কোডটি বিনিময় করতে হবে যাতে ব্যবহারকারীর Google অ্যাকাউন্ট সম্পর্কে তথ্য রয়েছে৷
একটি Google আইডি টোকেনের জন্য একটি অনুমোদন কোড বিনিময় করতে, https://oauth2.googleapis.com/token
এন্ডপয়েন্টে কল করুন এবং নিম্নলিখিত প্যারামিটারগুলি সেট করুন:
ক্ষেত্র অনুরোধ | |
---|---|
client_id | প্রয়োজনীয় API কনসোল শংসাপত্র পৃষ্ঠা থেকে প্রাপ্ত ক্লায়েন্ট আইডি। এটি সাধারণত নতুন অ্যাকশন অন Google অ্যাপ নামের শংসাপত্র হবে |
client_secret | প্রয়োজনীয় ক্লায়েন্ট গোপন API কনসোল শংসাপত্র পৃষ্ঠা থেকে প্রাপ্ত |
code | প্রয়োজনীয় প্রাথমিক অনুরোধে প্রেরিত অনুমোদন কোড |
grant_type | প্রয়োজনীয় OAuth 2.0 স্পেসিফিকেশনে সংজ্ঞায়িত করা হয়েছে , এই ক্ষেত্রের মান অবশ্যই authorization_code এ সেট করতে হবে। |
নমুনা অনুরোধ
POST /oauth2/v4/token HTTP/1.1
Host: www.googleapis.com
Content-Type: application/x-www-form-urlencoded
code=GOOGLE_AUTHORIZATION_CODE
&grant_type=authorization_code
&client_id=GOOGLE_CLIENT_ID
&client_secret=GOOGLE_CLIENT_SECRET
Google একটি JSON অবজেক্ট ফেরত দিয়ে এই অনুরোধে সাড়া দেয় যাতে একটি স্বল্পকালীন অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন রয়েছে।
প্রতিক্রিয়াতে নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:
প্রতিক্রিয়া ক্ষেত্র | |
---|---|
access_token | Google-প্রদত্ত অ্যাক্সেস টোকেন যা আপনার অ্যাপ্লিকেশন একটি Google API অনুরোধ অনুমোদন করতে পাঠায় |
id_token | আইডি টোকেনে ব্যবহারকারীর Google অ্যাকাউন্টের তথ্য থাকে। বৈধকরণ প্রতিক্রিয়া বিভাগে আইডি টোকেন প্রতিক্রিয়া কীভাবে ডিকোড এবং যাচাই করা যায় তার বিশদ বিবরণ রয়েছে |
expires_in | সেকেন্ডে অ্যাক্সেস টোকেনের অবশিষ্ট জীবনকাল |
refresh_token | একটি টোকেন যা আপনি একটি নতুন অ্যাক্সেস টোকেন পেতে ব্যবহার করতে পারেন। ব্যবহারকারী অ্যাক্সেস প্রত্যাহার না করা পর্যন্ত রিফ্রেশ টোকেন বৈধ |
scope | লিঙ্কড অ্যাকাউন্ট সাইন-ইন ব্যবহারের ক্ষেত্রে এই ক্ষেত্রের মান সর্বদা openid-এ সেট করা থাকে |
token_type | টোকেনের ধরন ফিরে এসেছে। এই সময়ে, এই ক্ষেত্রের মান সবসময় Bearer সেট করা হয় |
নমুনা প্রতিক্রিয়া
HTTP/1.1 200 OK
Content-type: application/json; charset=utf-8
{
"access_token": "Google-access-token",
"id_token": "Google-ID-token",
"expires_in": 3599,
"token_type": "Bearer",
"scope": "openid",
"refresh_token": "Google-refresh-token"
}
POST /oauth2/v4/token HTTP/1.1
Host: www.googleapis.com
Content-Type: application/x-www-form-urlencoded
code=Google authorization code
&grant_type=authorization_code
&client_id=Google client id
&client_secret=Google client secret
আইডি টোকেন প্রতিক্রিয়া যাচাই করুন
JWT দাবী যাচাই এবং ডিকোড করুন
আপনি আপনার ভাষার জন্য একটি JWT-ডিকোডিং লাইব্রেরি ব্যবহার করে JWT দাবিকে যাচাই এবং ডিকোড করতে পারেন। টোকেনের স্বাক্ষর যাচাই করতে JWK বা PEM ফর্ম্যাটে উপলব্ধ Google-এর পাবলিক কীগুলি ব্যবহার করুন৷
ডিকোড করা হলে, JWT দাবী নিম্নলিখিত উদাহরণের মত দেখায়:
{ "sub": "1234567890", // The unique ID of the user's Google Account "iss": "https://accounts.google.com", // The assertion's issuer "aud": "123-abc.apps.googleusercontent.com", // Your server's client ID "iat": 233366400, // Unix timestamp of the assertion's creation time "exp": 233370000, // Unix timestamp of the assertion's expiration time "name": "Jan Jansen", "given_name": "Jan", "family_name": "Jansen", "email": "jan@gmail.com", // If present, the user's email address "email_verified": true, // true, if Google has verified the email address "hd": "example.com", // If present, the host domain of the user's GSuite email address // If present, a URL to user's profile picture "picture": "https://lh3.googleusercontent.com/a-/AOh14GjlTnZKHAeb94A-FmEbwZv7uJD986VOF1mJGb2YYQ", "locale": "en_US" // User's locale, from browser or phone settings }
টোকেনের স্বাক্ষর যাচাই করার পাশাপাশি, নিশ্চিত করুন যে দাবীর ইস্যুকারী ( iss
ক্ষেত্র) হল https://accounts.google.com
, দর্শক ( aud
ফিল্ড) হল আপনার নির্ধারিত ক্লায়েন্ট আইডি, এবং টোকেনের মেয়াদ শেষ হয়নি ( exp
ক্ষেত্র)।
email
, email_verified
এবং hd
ক্ষেত্রগুলি ব্যবহার করে আপনি নির্ধারণ করতে পারেন যে Google হোস্ট করে এবং একটি ইমেল ঠিকানার জন্য অনুমোদিত কিনা। যেসব ক্ষেত্রে Google অনুমোদিত সেক্ষেত্রে ব্যবহারকারী বর্তমানে বৈধ অ্যাকাউন্টের মালিক হিসাবে পরিচিত এবং আপনি পাসওয়ার্ড বা অন্যান্য চ্যালেঞ্জ পদ্ধতিগুলি এড়িয়ে যেতে পারেন। অন্যথায়, লিঙ্ক করার আগে অ্যাকাউন্ট যাচাই করতে এই পদ্ধতিগুলি ব্যবহার করা যেতে পারে।
যেসব ক্ষেত্রে Google কর্তৃত্বপূর্ণ:
-
email
একটি@gmail.com
প্রত্যয় রয়েছে, এটি একটি Gmail অ্যাকাউন্ট। -
email_verified
সত্য এবংhd
সেট করা আছে, এটি একটি G Suite অ্যাকাউন্ট।
ব্যবহারকারীরা Gmail বা G Suite ব্যবহার না করে Google অ্যাকাউন্টের জন্য নিবন্ধন করতে পারেন। যখন email
@gmail.com
প্রত্যয় থাকে না এবং hd
অনুপস্থিত থাকে তখন Google অনুমোদিত নয় এবং ব্যবহারকারীকে যাচাই করার জন্য পাসওয়ার্ড বা অন্যান্য চ্যালেঞ্জ পদ্ধতি সুপারিশ করা হয়। email_verified
ও সত্য হতে পারে কারণ Google প্রাথমিকভাবে ব্যবহারকারীকে যাচাই করেছিল যখন Google অ্যাকাউন্ট তৈরি হয়েছিল, তবে তৃতীয় পক্ষের ইমেল অ্যাকাউন্টের মালিকানা তখন থেকে পরিবর্তিত হতে পারে।