Google এর সাথে সাইন ইন করে ব্যবহারকারীদের প্রমাণীকরণ করুন

Google-এর মাধ্যমে সাইন ইন করার মাধ্যমে আপনি আপনার Android অ্যাপের সাথে ব্যবহারকারীর প্রমাণীকরণ দ্রুত ইন্টিগ্রেট করতে পারবেন। ব্যবহারকারীরা তাদের Google অ্যাকাউন্ট ব্যবহার করে আপনার অ্যাপে সাইন ইন করতে, সম্মতি দিতে এবং নিরাপদে তাদের প্রোফাইল তথ্য আপনার অ্যাপের সাথে শেয়ার করতে পারবেন। Android-এর ক্রেডেনশিয়াল ম্যানেজার জেটপ্যাক লাইব্রেরি এই ইন্টিগ্রেশনকে মসৃণ করে তোলে, একটি একক API ব্যবহার করে Android ডিভাইস জুড়ে একটি ধারাবাহিক অভিজ্ঞতা প্রদান করে।

এই ডকুমেন্টটি আপনাকে অ্যান্ড্রয়েড অ্যাপগুলিতে Google-এর সাথে সাইন ইন বাস্তবায়ন, Google-এর সাথে সাইন ইন বোতাম UI কীভাবে সেট আপ করবেন এবং অ্যাপ-অপ্টিমাইজ করা ওয়ান ট্যাপ সাইন-আপ এবং সাইন-ইন অভিজ্ঞতা কনফিগার করার বিষয়ে নির্দেশনা দেয়। মসৃণ ডিভাইস মাইগ্রেশনের জন্য, Google-এর সাথে সাইন ইন স্বয়ংক্রিয় সাইন-ইন সমর্থন করে এবং Android, iOS এবং ওয়েব সারফেস জুড়ে এর ক্রস-প্ল্যাটফর্ম প্রকৃতি আপনাকে যেকোনো ডিভাইসে আপনার অ্যাপের জন্য সাইন-ইন অ্যাক্সেস প্রদান করতে সহায়তা করে। আপনি যদি আপনার অ্যাপ্লিকেশনের জন্য Firebase প্রমাণীকরণ ব্যবহার করেন, তাহলে আপনি তাদের Authenticate with Google on Android নির্দেশিকাতে Google-এর সাথে সাইন ইন এবং ক্রেডেনশিয়াল ম্যানেজারকে একীভূত করার বিষয়ে আরও জানতে পারবেন।

"Google দিয়ে সাইন ইন করুন" সেট আপ করতে, এই দুটি প্রধান ধাপ অনুসরণ করুন:

ক্রেডেনশিয়াল ম্যানেজারের বটম শিট UI এর জন্য "সাইন ইন উইথ গুগল" বিকল্পটি কনফিগার করুন । এটি ব্যবহারকারীকে স্বয়ংক্রিয়ভাবে সাইন ইন করতে অনুরোধ করার জন্য কনফিগার করা যেতে পারে। যদি আপনি পাসকি বা পাসওয়ার্ড প্রয়োগ করে থাকেন, তাহলে আপনি একই সাথে সমস্ত প্রাসঙ্গিক ক্রেডেনশিয়াল প্রকারের অনুরোধ করতে পারেন, যাতে ব্যবহারকারীকে সাইন ইন করার জন্য পূর্বে ব্যবহৃত বিকল্পটি মনে রাখতে না হয়।

ক্রেডেনশিয়াল ম্যানেজারের নিচের শিট
চিত্র ১. ক্রেডেনশিয়াল ম্যানেজার বটমশিট ক্রেডেনশিয়াল নির্বাচন UI

আপনার অ্যাপের UI তে "Google দিয়ে সাইন ইন করুন" বোতামটি যোগ করুন । "Google দিয়ে সাইন ইন করুন" বোতামটি ব্যবহারকারীদের তাদের বিদ্যমান Google অ্যাকাউন্টগুলি ব্যবহার করে সাইন আপ করতে বা Android অ্যাপগুলিতে সাইন ইন করার জন্য একটি সহজ উপায় প্রদান করে। ব্যবহারকারীরা যদি নীচের শিট UI বাতিল করে, অথবা যদি তারা স্পষ্টভাবে সাইন আপ এবং সাইন ইন করার জন্য তাদের Google অ্যাকাউন্ট ব্যবহার করতে চান তবে তারা "Google দিয়ে সাইন ইন করুন" বোতামটি ক্লিক করবেন। ডেভেলপারদের জন্য, এর অর্থ হল ব্যবহারকারীদের সাথে যোগাযোগ করা সহজ হবে এবং সাইন-আপের সময় ঘর্ষণ কম হবে।

অ্যানিমেশনে Google দিয়ে সাইন ইন করার ফ্লো দেখানো হচ্ছে
চিত্র ২। ক্রেডেনশিয়াল ম্যানেজার গুগল বোতাম UI দিয়ে সাইন ইন করুন

এই ডকুমেন্টে ব্যাখ্যা করা হয়েছে যে কীভাবে Google ID হেল্পার লাইব্রেরি ব্যবহার করে Credential Manager API-এর সাথে Sign In with Google বোতাম এবং বটম শিট ডায়ালগ ইন্টিগ্রেট করা যায়।

আপনার সেট আপ করুন Google Cloud Console প্রকল্প

  1. আপনার প্রকল্পটি খুলুনCloud Console , অথবা যদি আপনার কাছে ইতিমধ্যেই একটি প্রকল্প না থাকে তবে একটি প্রকল্প তৈরি করুন।
  2. উপরেBranding page , নিশ্চিত করুন যে সমস্ত তথ্য সম্পূর্ণ এবং নির্ভুল।
    1. আপনার অ্যাপের জন্য সঠিক অ্যাপের নাম, অ্যাপ লোগো এবং অ্যাপ হোমপেজ বরাদ্দ করা আছে কিনা তা নিশ্চিত করুন। সাইন আপের সময় সাইন ইন উইথ গুগল সম্মতি স্ক্রিনে এবং তৃতীয় পক্ষের অ্যাপস এবং পরিষেবা স্ক্রিনে ব্যবহারকারীদের কাছে এই মানগুলি উপস্থাপন করা হবে।
    2. আপনার অ্যাপের গোপনীয়তা নীতি এবং পরিষেবার শর্তাবলীর URL গুলি নির্দিষ্ট করেছেন কিনা তা নিশ্চিত করুন।
  3. মধ্যেClients page , যদি আপনার অ্যাপটি ইতিমধ্যে না থাকে তবে তার জন্য একটি অ্যান্ড্রয়েড ক্লায়েন্ট আইডি তৈরি করুন। আপনাকে আপনার অ্যাপের প্যাকেজ নাম এবং SHA-1 স্বাক্ষর নির্দিষ্ট করতে হবে।
    1. যানClients page .
    2. ক্লায়েন্ট তৈরি করুন ক্লিক করুন।
    3. অ্যান্ড্রয়েড অ্যাপ্লিকেশনের ধরণ নির্বাচন করুন।
    4. OAuth ক্লায়েন্টের জন্য একটি নাম লিখুন। এই নামটি আপনার প্রকল্পেরClients page ক্লায়েন্টকে সনাক্ত করতে।
    5. আপনার অ্যান্ড্রয়েড অ্যাপের প্যাকেজের নাম লিখুন। এই মানটি আপনার AndroidManifest.xml ফাইলের <manifest> এলিমেন্টের package অ্যাট্রিবিউটে সংজ্ঞায়িত করা হয়েছে।
    6. অ্যাপ ডিস্ট্রিবিউশনের SHA-1 স্বাক্ষরকারী শংসাপত্রের আঙ্গুলের ছাপ লিখুন।
    7. যদি আপনার অ্যাপটি Google Play দ্বারা অ্যাপ সাইনিং ব্যবহার করে, তাহলে Play Console এর অ্যাপ সাইনিং পৃষ্ঠা থেকে SHA-1 ফিঙ্গারপ্রিন্ট কপি করুন।
    8. যদি আপনি নিজের কীস্টোর এবং সাইনিং কী পরিচালনা করেন, তাহলে জাভার সাথে অন্তর্ভুক্ত কীটুল ইউটিলিটি ব্যবহার করে সার্টিফিকেটের তথ্য মানুষের পঠনযোগ্য ফর্ম্যাটে মুদ্রণ করুন। কীটুল আউটপুটের Certificate fingerprints বিভাগে SHA-1 মানটি অনুলিপি করুন। আরও তথ্যের জন্য অ্যান্ড্রয়েড ডকুমেন্টেশনের জন্য গুগল এপিআইতে আপনার ক্লায়েন্টকে প্রমাণীকরণ করা দেখুন।
    9. (ঐচ্ছিক) আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনের মালিকানা যাচাই করুন
  4. মধ্যেClients page , যদি আপনি ইতিমধ্যেই না করে থাকেন তবে একটি নতুন "ওয়েব অ্যাপ্লিকেশন" ক্লায়েন্ট আইডি তৈরি করুন। আপনি আপাতত "অনুমোদিত জাভাস্ক্রিপ্ট অরিজিন" এবং "অনুমোদিত পুনর্নির্দেশ URI" ক্ষেত্রগুলি উপেক্ষা করতে পারেন। এই ক্লায়েন্ট আইডিটি আপনার ব্যাকএন্ড সার্ভারটি সনাক্ত করতে ব্যবহার করা হবে যখন এটি Google এর প্রমাণীকরণ পরিষেবার সাথে যোগাযোগ করবে।
    1. যানClients page .
    2. ক্লায়েন্ট তৈরি করুন ক্লিক করুন।
    3. ওয়েব অ্যাপ্লিকেশনের ধরণ নির্বাচন করুন।

অ্যাপের মালিকানা যাচাই করুন

অ্যাপের ছদ্মবেশ ধারণের ঝুঁকি কমাতে আপনি আপনার অ্যাপ্লিকেশনের মালিকানা যাচাই করতে পারেন।

যাচাইকরণ প্রক্রিয়াটি সম্পূর্ণ করার জন্য, যদি আপনার একটি Google Play ডেভেলপার অ্যাকাউন্ট থাকে এবং আপনার অ্যাপটি Google Play Console- এ নিবন্ধিত থাকে, তাহলে আপনি এটি ব্যবহার করতে পারেন। সফল যাচাইকরণের জন্য নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করতে হবে:

  • আপনার অবশ্যই Google Play Console-এ একটি নিবন্ধিত অ্যাপ্লিকেশন থাকতে হবে যার প্যাকেজ নাম এবং SHA-1 সাইনিং সার্টিফিকেট ফিঙ্গারপ্রিন্ট একই Android OAuth ক্লায়েন্টের জন্য যাচাইকরণ সম্পন্ন করার সাথে সম্পর্কিত।
  • Google Play Console-এ অ্যাপটির জন্য আপনার অ্যাডমিনের অনুমতি থাকতে হবে। Google Play Console-এ অ্যাক্সেস ব্যবস্থাপনা সম্পর্কে আরও জানুন

অ্যান্ড্রয়েড ক্লায়েন্টের অ্যাপ মালিকানা যাচাই বিভাগে, যাচাইকরণ প্রক্রিয়াটি সম্পূর্ণ করতে মালিকানা যাচাই করুন বোতামে ক্লিক করুন।

যাচাইকরণ সফল হলে, যাচাইকরণ প্রক্রিয়ার সাফল্য নিশ্চিত করার জন্য একটি বিজ্ঞপ্তি প্রদর্শিত হবে। অন্যথায়, একটি ত্রুটি প্রম্পট দেখানো হবে।

ব্যর্থ যাচাইকরণ ঠিক করতে, নিম্নলিখিতগুলি চেষ্টা করে দেখুন:

  • নিশ্চিত করুন যে আপনি যে অ্যাপটি যাচাই করছেন সেটি Google Play Console-এ একটি নিবন্ধিত অ্যাপ।
  • গুগল প্লে কনসোলে অ্যাপটির জন্য আপনার অ্যাডমিনের অনুমতি আছে কিনা তা নিশ্চিত করুন।

নির্ভরতা ঘোষণা করুন

আপনার অ্যাপ মডিউলের বিল্ড স্ক্রিপ্টে নিম্নলিখিত নির্ভরতা যোগ করুন- <latest version> googleid লাইব্রেরির সর্বশেষ সংস্করণ দিয়ে প্রতিস্থাপন করতে ভুলবেন না:

কোটলিন

dependencies {
    implementation("androidx.credentials:credentials:1.6.0-beta03")
    implementation("androidx.credentials:credentials-play-services-auth:1.6.0-beta03")
    implementation("com.google.android.libraries.identity.googleid:googleid:<latest version>")
}

গ্রোভি

dependencies {
    implementation "androidx.credentials:credentials:1.6.0-beta03"
    implementation "androidx.credentials:credentials-play-services-auth:1.6.0-beta03"
    implementation "com.google.android.libraries.identity.googleid:googleid:<latest version>"
}

একটি Google সাইন-ইন অনুরোধ ইনস্ট্যান্ট করুন

আপনার বাস্তবায়ন শুরু করতে, একটি Google সাইন-ইন অনুরোধ ইনস্ট্যান্ট করুন । ব্যবহারকারীর Google আইডি টোকেন পুনরুদ্ধার করতে GetGoogleIdOption ব্যবহার করুন।

val googleIdOption: GetGoogleIdOption = GetGoogleIdOption.Builder()
    .setFilterByAuthorizedAccounts(true)
    .setServerClientId(WEB_CLIENT_ID)
    .setAutoSelectEnabled(true)
    // nonce string to use when generating a Google ID token
    .setNonce(nonce)
    .build()

প্রথমে, setFilterByAuthorizedAccounts প্যারামিটারটি true তে সেট করে API কল করে আপনার অ্যাপে সাইন ইন করার জন্য ব্যবহারকারীর কোনও অ্যাকাউন্ট আছে কিনা তা পরীক্ষা করুন। ব্যবহারকারীরা সাইন ইন করার জন্য উপলব্ধ অ্যাকাউন্টগুলির মধ্যে একটি বেছে নিতে পারেন।

যদি কোনও অনুমোদিত Google অ্যাকাউন্ট উপলব্ধ না থাকে, তাহলে ব্যবহারকারীকে তাদের উপলব্ধ যেকোনো অ্যাকাউন্ট দিয়ে সাইন আপ করতে বলা উচিত। এটি করার জন্য, API-তে আবার কল করে এবং setFilterByAuthorizedAccounts false এ সেট করে ব্যবহারকারীকে অনুরোধ করুন। সাইন আপ সম্পর্কে আরও জানুন

ফিরে আসা ব্যবহারকারীদের জন্য স্বয়ংক্রিয় সাইন-ইন সক্ষম করুন (প্রস্তাবিত)

ডেভেলপারদের উচিত তাদের একক অ্যাকাউন্ট দিয়ে নিবন্ধনকারী ব্যবহারকারীদের জন্য স্বয়ংক্রিয় সাইন-ইন সক্ষম করা। এটি ডিভাইস জুড়ে একটি নিরবচ্ছিন্ন অভিজ্ঞতা প্রদান করে, বিশেষ করে ডিভাইস মাইগ্রেশনের সময়, যেখানে ব্যবহারকারীরা ক্রেডেনশিয়াল পুনরায় প্রবেশ না করেই দ্রুত তাদের অ্যাকাউন্টে অ্যাক্সেস ফিরে পেতে পারেন। আপনার ব্যবহারকারীদের জন্য, এটি পূর্বে সাইন ইন থাকাকালীন অপ্রয়োজনীয় ঝামেলা দূর করে।

স্বয়ংক্রিয় সাইন-ইন সক্ষম করতে, setAutoSelectEnabled(true) ব্যবহার করুন। নিম্নলিখিত মানদণ্ডগুলি পূরণ হলেই স্বয়ংক্রিয় সাইন ইন সম্ভব:

  • অনুরোধের সাথে মিলে যাওয়া একটি মাত্র শংসাপত্র আছে, যা একটি Google অ্যাকাউন্ট অথবা একটি পাসওয়ার্ড হতে পারে, এবং এই শংসাপত্রটি Android-চালিত ডিভাইসের ডিফল্ট অ্যাকাউন্টের সাথে মেলে।
  • ব্যবহারকারী স্পষ্টভাবে সাইন আউট করেননি।
  • ব্যবহারকারী তাদের Google অ্যাকাউন্ট সেটিংসে স্বয়ংক্রিয় সাইন-ইন অক্ষম করেননি।
val googleIdOption: GetGoogleIdOption = GetGoogleIdOption.Builder()
    .setFilterByAuthorizedAccounts(true)
    .setServerClientId(WEB_CLIENT_ID)
    .setAutoSelectEnabled(true)
    // nonce string to use when generating a Google ID token
    .setNonce(nonce)
    .build()

স্বয়ংক্রিয় সাইন-ইন বাস্তবায়নের সময় সাইন-আউট সঠিকভাবে পরিচালনা করতে ভুলবেন না, যাতে ব্যবহারকারীরা আপনার অ্যাপ থেকে স্পষ্টভাবে সাইন আউট করার পরে সর্বদা সঠিক অ্যাকাউন্টটি বেছে নিতে পারেন।

নিরাপত্তা উন্নত করার জন্য একটি নন্স সেট করুন

সাইন-ইন নিরাপত্তা উন্নত করতে এবং রিপ্লে আক্রমণ এড়াতে, প্রতিটি অনুরোধে একটি nonce অন্তর্ভুক্ত করতে setNonce যোগ করুন। nonce তৈরি করা সম্পর্কে আরও জানুন

val googleIdOption: GetGoogleIdOption = GetGoogleIdOption.Builder()
    .setFilterByAuthorizedAccounts(true)
    .setServerClientId(WEB_CLIENT_ID)
    .setAutoSelectEnabled(true)
    // nonce string to use when generating a Google ID token
    .setNonce(nonce)
    .build()

Google ফ্লো দিয়ে সাইন ইন করুন তৈরি করুন

গুগল ফ্লো দিয়ে সাইন ইন সেট আপ করার ধাপগুলি নিম্নরূপ:

  1. একটি GetCredentialRequest ইন্সট্যান্ট করুন, তারপর addCredentialOption() ব্যবহার করে পূর্বে তৈরি করা googleIdOption যোগ করুন যাতে শংসাপত্রগুলি পুনরুদ্ধার করা যায়।
  2. ব্যবহারকারীর উপলব্ধ শংসাপত্রগুলি পুনরুদ্ধার করতে getCredential() (Kotlin) অথবা getCredentialAsync() (Java) কলে এই অনুরোধটি পাস করুন।
  3. API সফল হয়ে গেলে, CustomCredential টি এক্সট্র্যাক্ট করুন যা GoogleIdTokenCredential ডেটার ফলাফল ধারণ করে।
  4. CustomCredential এর ধরণটি GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL এর মানের সমান হওয়া উচিত। GoogleIdTokenCredential.createFrom পদ্ধতি ব্যবহার করে অবজেক্টটিকে GoogleIdTokenCredential এ রূপান্তর করুন।
  5. যদি রূপান্তরটি সফল হয়, তাহলে GoogleIdTokenCredential IDটি বের করুন, এটি যাচাই করুন এবং আপনার সার্ভারে শংসাপত্রটি প্রমাণীকরণ করুন।

  6. যদি GoogleIdTokenParsingException দিয়ে রূপান্তর ব্যর্থ হয়, তাহলে আপনাকে আপনার Sign in with Google লাইব্রেরি সংস্করণ আপডেট করতে হতে পারে।

  7. যেকোনো অচেনা কাস্টম শংসাপত্রের ধরণ ধরুন।

val request: GetCredentialRequest = GetCredentialRequest.Builder()
    .addCredentialOption(googleIdOption)
    .build()

coroutineScope {
    try {
        val result = credentialManager.getCredential(
            request = request,
            context = activityContext,
        )
        handleSignIn(result)
    } catch (e: GetCredentialException) {
        // Handle failure
    }
}
fun handleSignIn(result: GetCredentialResponse) {
    // Handle the successfully returned credential.
    val credential = result.credential
    val responseJson: String

    when (credential) {

        // Passkey credential
        is PublicKeyCredential -> {
            // Share responseJson such as a GetCredentialResponse to your server to validate and
            // authenticate
            responseJson = credential.authenticationResponseJson
        }

        // Password credential
        is PasswordCredential -> {
            // Send ID and password to your server to validate and authenticate.
            val username = credential.id
            val password = credential.password
        }

        // GoogleIdToken credential
        is CustomCredential -> {
            if (credential.type == GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL) {
                try {
                    // Use googleIdTokenCredential and extract the ID to validate and
                    // authenticate on your server.
                    val googleIdTokenCredential = GoogleIdTokenCredential
                        .createFrom(credential.data)
                    // You can use the members of googleIdTokenCredential directly for UX
                    // purposes, but don't use them to store or control access to user
                    // data. For that you first need to validate the token:
                    // pass googleIdTokenCredential.getIdToken() to the backend server.
                    // see [validation instructions](https://developers.google.com/identity/gsi/web/guides/verify-google-id-token)
                } catch (e: GoogleIdTokenParsingException) {
                    Log.e(TAG, "Received an invalid google id token response", e)
                }
            } else {
                // Catch any unrecognized custom credential type here.
                Log.e(TAG, "Unexpected type of credential")
            }
        }

        else -> {
            // Catch any unrecognized credential type here.
            Log.e(TAG, "Unexpected type of credential")
        }
    }
}

"Google দিয়ে সাইন ইন করুন" বোতাম প্রবাহ চালু করুন

Sign in with Google বোতাম প্রবাহ চালু করতে, GetGoogleIdOption এর পরিবর্তে GetSignInWithGoogleOption ব্যবহার করুন:

val signInWithGoogleOption: GetSignInWithGoogleOption = GetSignInWithGoogleOption.Builder(
    serverClientId = WEB_CLIENT_ID
).setNonce(nonce)
    .build()

নিম্নলিখিত কোড উদাহরণে বর্ণিতভাবে ফেরত আসা GoogleIdTokenCredential পরিচালনা করুন।

fun handleSignInWithGoogleOption(result: GetCredentialResponse) {
    // Handle the successfully returned credential.
    val credential = result.credential

    when (credential) {
        is CustomCredential -> {
            if (credential.type == GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL) {
                try {
                    // Use googleIdTokenCredential and extract id to validate and
                    // authenticate on your server.
                    val googleIdTokenCredential = GoogleIdTokenCredential
                        .createFrom(credential.data)
                } catch (e: GoogleIdTokenParsingException) {
                    Log.e(TAG, "Received an invalid google id token response", e)
                }
            } else {
                // Catch any unrecognized credential type here.
                Log.e(TAG, "Unexpected type of credential")
            }
        }

        else -> {
            // Catch any unrecognized credential type here.
            Log.e(TAG, "Unexpected type of credential")
        }
    }
}

একবার আপনি গুগল সাইন ইন অনুরোধটি চালু করলে, গুগলের সাথে সাইন ইন বিভাগে উল্লিখিত একই পদ্ধতিতে প্রমাণীকরণ প্রবাহ চালু করুন।

নতুন ব্যবহারকারীদের জন্য সাইন-আপ সক্ষম করুন (প্রস্তাবিত)

গুগলের মাধ্যমে সাইন ইন করা হল ব্যবহারকারীদের জন্য মাত্র কয়েকটি ট্যাপে আপনার অ্যাপ বা পরিষেবা দিয়ে একটি নতুন অ্যাকাউন্ট তৈরি করার সবচেয়ে সহজ উপায়।

যদি কোনও সংরক্ষিত শংসাপত্র না পাওয়া যায় ( getGoogleIdOption দ্বারা কোনও Google অ্যাকাউন্ট ফেরত দেওয়া হয়নি), তাহলে আপনার ব্যবহারকারীকে সাইন আপ করতে বলুন। প্রথমে, setFilterByAuthorizedAccounts(true) পরীক্ষা করে দেখুন যে পূর্বে ব্যবহৃত কোনও অ্যাকাউন্ট আছে কিনা। যদি কোনও অ্যাকাউন্ট না পাওয়া যায়, তাহলে ব্যবহারকারীকে setFilterByAuthorizedAccounts(false) ব্যবহার করে তাদের Google অ্যাকাউন্ট দিয়ে সাইন আপ করতে বলুন।

উদাহরণ:

val googleIdOption: GetGoogleIdOption = GetGoogleIdOption.Builder()
    .setFilterByAuthorizedAccounts(false)
    .setServerClientId(WEB_CLIENT_ID)
    .build()

গুগল সাইন আপ রিকোয়েস্ট চালু করার পর, প্রমাণীকরণ প্রবাহ চালু করুন। ব্যবহারকারীরা যদি সাইন আপের জন্য গুগলের সাথে সাইন ইন ব্যবহার করতে না চান, তাহলে অটোফিলের জন্য আপনার অ্যাপটি অপ্টিমাইজ করার কথা বিবেচনা করুন। আপনার ব্যবহারকারী একবার একটি অ্যাকাউন্ট তৈরি করলে, অ্যাকাউন্ট তৈরির চূড়ান্ত পদক্ষেপ হিসেবে তাদের পাসকিতে নথিভুক্ত করার কথা বিবেচনা করুন।

সাইন-আউট পরিচালনা করুন

যখন কোনও ব্যবহারকারী আপনার অ্যাপ থেকে সাইন আউট করেন, তখন সমস্ত ক্রেডেনশিয়াল প্রোভাইডার থেকে বর্তমান ব্যবহারকারীর ক্রেডেনশিয়াল অবস্থা সাফ করার জন্য API clearCredentialState() পদ্ধতিটি কল করুন। এটি সমস্ত ক্রেডেনশিয়াল প্রোভাইডারকে অবহিত করবে যে প্রদত্ত অ্যাপের জন্য যেকোনো সংরক্ষিত ক্রেডেনশিয়াল সেশন সাফ করা উচিত।

একটি ক্রেডেনশিয়াল প্রদানকারী একটি সক্রিয় ক্রেডেনশিয়াল সেশন সংরক্ষণ করে থাকতে পারে এবং ভবিষ্যতের ক্রেডেনশিয়াল কলের জন্য সাইন-ইন বিকল্পগুলি সীমিত করতে এটি ব্যবহার করতে পারে। উদাহরণস্বরূপ, এটি অন্য যেকোনো উপলব্ধ ক্রেডেনশিয়ালের চেয়ে সক্রিয় ক্রেডেনশিয়ালকে অগ্রাধিকার দিতে পারে। যখন আপনার ব্যবহারকারী স্পষ্টভাবে আপনার অ্যাপ থেকে সাইন আউট করেন এবং পরের বার সামগ্রিক সাইন-ইন বিকল্পগুলি পেতে, তখন সরবরাহকারীকে যেকোনো সঞ্চিত ক্রেডেনশিয়াল সেশন সাফ করার জন্য আপনার এই API কল করা উচিত।