জাভাস্ক্রিপ্ট ব্যবহার করে Google-এর মাধ্যমে যাচাইকরণ

আপনার ব্যবহারকারীরা তাদের Google অ্যাকাউন্ট ব্যবহার করে Firebase-এর মাধ্যমে নিজেদের যাচাই করিয়ে নিতে পারবেন। Google সাইন-ইন ফ্লো সম্পূর্ণ করতে আপনি Firebase SDK ব্যবহার করতে পারেন অথবা Sign In With Google লাইব্রেরি ব্যবহার করে ম্যানুয়ালি সাইন-ইন ফ্লো সম্পূর্ণ করতে পারেন এবং Firebase-এ ফলাফল হিসেবে প্রাপ্ত আইডি টোকেন পাস করতে পারেন।

AI সহায়তা পেতে, নিচে দেওয়া প্রম্পটটি আপনার AI কোডিং এজেন্টে (যেমন Antigravity, Claude Code, Codex ও Cursor) কপি করুন। আপনি প্রম্পট কাস্টমাইজ করতে এবং এজেন্টের সাথে আইটেরেট করতে পারবেন। ইনস্টলেশন সংক্রান্ত বিস্তারিত তথ্য পেতে Firebase এজেন্ট দক্ষতা দেখুন।

Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me set up and use Firebase Authentication with Google Sign-In in my app.

শুরু করার আগে

  1. আপনার JavaScript প্রোজেক্টে Firebase যোগ করুন।
  2. আপনার Firebase প্রোজেক্টের জন্য সাইন-ইন পরিষেবা প্রদানকারী হিসেবে Google-কে চালু করুন:
    1. Firebase কনসোলে গিয়ে নিরাপত্তা > যাচাইকরণ বিকল্পে যান।
    2. সাইন-ইন পদ্ধতি ট্যাবে, Google সাইন-ইন প্রোভাইডার চালু করুন।
    3. সেভ করুন বিকল্পে ক্লিক করুন।

Firebase SDK-এর মাধ্যমে সাইন-ইন ফ্লো ম্যানেজ করা

আপনি যদি কোনও ওয়েব অ্যাপ তৈরি করেন, তাহলে Firebase JavaScript SDK-এর মাধ্যমে সাইন-ইন ফ্লো ম্যানেজ করে, ব্যবহারকারীদের Google অ্যাকাউন্ট ব্যবহার করে Firebase-এর মাধ্যমে যাচাই করার সবচেয়ে সহজ উপায় হল। (আপনি Node.js বা অন্যান্য নন-ব্রাউজার এনভায়রনমেন্টে কোনও ব্যবহারকারীকে যাচাই করতে চাইলে, আপনাকে সাইন-ইন ফ্লো ম্যানুয়ালি ম্যানেজ করতে হবে।)

Firebase JavaScript SDK-এর মাধ্যমে সাইন-ইন ফ্লো ম্যানেজ করতে, এইসব ধাপ অনুসরণ করুন:

  1. Google প্রোভাইডার অবজেক্টের একটি ইনস্ট্যান্স তৈরি করুন:

    Web

    import { GoogleAuthProvider } from "firebase/auth";
    
    const provider = new GoogleAuthProvider();

    Web

    var provider = new firebase.auth.GoogleAuthProvider();
  2. ঐচ্ছিক: অতিরিক্ত OAuth 2.0 স্কোপ নির্দিষ্ট করুন যা আপনি যাচাইকরণ প্রদানকারীর কাছে অনুরোধ করতে চান। স্কোপ যোগ করতে, কল করুন addScope। যেমন:

    Web

    provider.addScope('https://www.googleapis.com/auth/contacts.readonly');

    Web

    provider.addScope('https://www.googleapis.com/auth/contacts.readonly');
    যাচাইকরণ প্রদানকারী ডকুমেন্টেশন দেখুন।
  3. ঐচ্ছিক: প্রাসঙ্গিক কাস্টম OAuth প্যারামিটার স্পষ্টভাবে পাস না করেই, ব্যবহারকারীর পছন্দের ভাষায় প্রদানকারীর OAuth ফ্লো লোকাল করার জন্য, OAuth ফ্লো শুরু করার আগে Auth ইনস্ট্যান্সে ল্যাঙ্গুয়েজ কোড আপডেট করুন। যেমন:

    Web

    import { getAuth } from "firebase/auth";
    
    const auth = getAuth();
    auth.languageCode = 'it';
    // To apply the default browser preference instead of explicitly setting it.
    // auth.useDeviceLanguage();

    Web

    firebase.auth().languageCode = 'it';
    // To apply the default browser preference instead of explicitly setting it.
    // firebase.auth().useDeviceLanguage();
  4. ঐচ্ছিক: OAuth অনুরোধের সাথে পাঠাতে চান এমন অতিরিক্ত কাস্টম OAuth প্রদানকারী প্যারামিটার নির্দিষ্ট করুন। কাস্টম প্যারামিটার যোগ করতে, OAuth প্রদানকারীর ডকুমেন্টেশন এবং সংশ্লিষ্ট ভ্যালুতে উল্লেখ করা কী সহ অবজেক্ট দিয়ে ইনিশিয়ালাইজ করা প্রোভাইডারে setCustomParameters কল করুন। যেমন:

    Web

    provider.setCustomParameters({
      'login_hint': 'user@example.com'
    });

    Web

    provider.setCustomParameters({
      'login_hint': 'user@example.com'
    });
    রিজার্ভ করা প্রয়োজনীয় OAuth প্যারামিটার ব্যবহার করা যায় না এবং উপেক্ষা করা হবে। আরও বিবরণের জন্য প্রমাণীকরণ প্রদানকারী রেফারেন্স দেখুন।
  5. Google প্রদানকারী অবজেক্ট ব্যবহার করে Firebase-এর মাধ্যমে যাচাই করুন। আপনি পপ-আপ উইন্ডো খুলে অথবা সাইন-ইন পৃষ্ঠায় রিডাইরেক্ট করার মাধ্যমে ব্যবহারকারীদের তাদের Google অ্যাকাউন্ট দিয়ে সাইন-ইন করার জন্য প্রম্পট করতে পারেন। মোবাইল ডিভাইসে রিডাইরেক্ট করার পদ্ধতি ব্যবহার করা ভাল।
    • পপ-আপ উইন্ডোর মাধ্যমে সাইন-ইন করতে, signInWithPopup-এ কল করুন:

      Web

      import { getAuth, signInWithPopup, GoogleAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      signInWithPopup(auth, provider)
        .then((result) => {
          // This gives you a Google Access Token. You can use it to access the Google API.
          const credential = GoogleAuthProvider.credentialFromResult(result);
          const token = credential.accessToken;
          // The signed-in user info.
          const user = result.user;
          // IdP data available using getAdditionalUserInfo(result)
          // ...
        }).catch((error) => {
          // Handle Errors here.
          const errorCode = error.code;
          const errorMessage = error.message;
          // The email of the user's account used.
          const email = error.customData.email;
          // The AuthCredential type that was used.
          const credential = GoogleAuthProvider.credentialFromError(error);
          // ...
        });

      Web

      firebase.auth()
        .signInWithPopup(provider)
        .then((result) => {
          /** @type {firebase.auth.OAuthCredential} */
          var credential = result.credential;
      
          // This gives you a Google Access Token. You can use it to access the Google API.
          var token = credential.accessToken;
          // The signed-in user info.
          var user = result.user;
          // IdP data available in result.additionalUserInfo.profile.
            // ...
        }).catch((error) => {
          // Handle Errors here.
          var errorCode = error.code;
          var errorMessage = error.message;
          // The email of the user's account used.
          var email = error.email;
          // The firebase.auth.AuthCredential type that was used.
          var credential = error.credential;
          // ...
        });
      এছাড়াও, মনে রাখবেন যে আপনি Google প্রদানকারীর OAuth টোকেন পুনরুদ্ধার করতে পারবেন যা Google API ব্যবহার করে অতিরিক্ত ডেটা পেতে ব্যবহার করা যেতে পারে।

      এছাড়াও, আপনি এখানে ভুল ধরতে ও সমাধান করতে পারবেন। সমস্যার কোডের তালিকা দেখতে Auth রেফারেন্স ডকুমেন্ট দেখুন।

    • সাইন-ইন পৃষ্ঠায় রিডাইরেক্ট করার মাধ্যমে সাইন-ইন করতে, signInWithRedirect-এ কল করুন: `signInWithRedirect` ব্যবহার করার সময় পেশাদার পদ্ধতি অনুসরণ করুন।

      Web

      import { getAuth, signInWithRedirect } from "firebase/auth";
      
      const auth = getAuth();
      signInWithRedirect(auth, provider);

      Web

      firebase.auth().signInWithRedirect(provider);
      এছাড়াও, আপনার পৃষ্ঠা লোড হলে, getRedirectResult কল করে Google পরিষেবা প্রদানকারীর OAuth টোকেন ফিরিয়ে আনতে পারবেন:

      Web

      import { getAuth, getRedirectResult, GoogleAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      getRedirectResult(auth)
        .then((result) => {
          // This gives you a Google Access Token. You can use it to access Google APIs.
          const credential = GoogleAuthProvider.credentialFromResult(result);
          const token = credential.accessToken;
      
          // The signed-in user info.
          const user = result.user;
          // IdP data available using getAdditionalUserInfo(result)
          // ...
        }).catch((error) => {
          // Handle Errors here.
          const errorCode = error.code;
          const errorMessage = error.message;
          // The email of the user's account used.
          const email = error.customData.email;
          // The AuthCredential type that was used.
          const credential = GoogleAuthProvider.credentialFromError(error);
          // ...
        });

      Web

      firebase.auth()
        .getRedirectResult()
        .then((result) => {
          if (result.credential) {
            /** @type {firebase.auth.OAuthCredential} */
            var credential = result.credential;
      
            // This gives you a Google Access Token. You can use it to access the Google API.
            var token = credential.accessToken;
            // ...
          }
          // The signed-in user info.
          var user = result.user;
          // IdP data available in result.additionalUserInfo.profile.
            // ...
        }).catch((error) => {
          // Handle Errors here.
          var errorCode = error.code;
          var errorMessage = error.message;
          // The email of the user's account used.
          var email = error.email;
          // The firebase.auth.AuthCredential type that was used.
          var credential = error.credential;
          // ...
        });
      এছাড়াও, আপনি এখানে ভুল ধরতে ও সমাধান করতে পারবেন। সমস্যার কোডের তালিকা দেখতে Auth রেফারেন্স ডকুমেন্ট দেখুন।

Chrome এক্সটেনশনে Firebase-এর মাধ্যমে যাচাইকরণ

আপনি Chrome এক্সটেনশন অ্যাপ তৈরি করলে, অফস্ক্রিন ডকুমেন্ট গাইড দেখুন।

পরবর্তী ধাপ

কোনও ব্যবহারকারী প্রথমবার সাইন-ইন করার পরে, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং ক্রেডেনশিয়ালের সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর বা ব্যবহারকারী যে তথ্য দিয়ে সাইন-ইন করেছেন তা প্রদানকারীর তথ্য। এই নতুন অ্যাকাউন্ট আপনার Firebase প্রোজেক্টের অংশ হিসেবে স্টোর করা হয় এবং ব্যবহারকারী কীভাবে সাইন-ইন করেছেন তা নির্বিশেষে, আপনার প্রোজেক্টের প্রতিটি অ্যাপ জুড়ে কোনও ব্যবহারকারীকে শনাক্ত করতে ব্যবহার করা যেতে পারে।

  • আপনার অ্যাপে, ব্যবহারকারীর অনুমোদনের স্ট্যাটাস জানার জন্য সাজেস্ট করা পদ্ধতি হল, Auth অবজেক্টে একটি অবজ়ার্ভার সেট করা। আপনি তারপরে User অবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল সংক্রান্ত তথ্য পেতে পারেন। ব্যবহারকারীদের ম্যানেজ করা দেখুন।

  • আপনার Firebase Realtime Database এবং Cloud Storage নিরাপত্তা বিধিতে, আপনি auth ভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ব্যবহারকারী আইডি পেতে এবং ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারবেন তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারবেন।

আপনি আগে থেকে থাকা ব্যবহারকারীর অ্যাকাউন্টের সাথে অনুমোদন প্রদানকারীর ক্রেডেনশিয়াল লিঙ্ক করে একাধিক অনুমোদন প্রদানকারীর মাধ্যমে আপনার অ্যাপে সাইন-ইন করার জন্য ব্যবহারকারীদের অনুমতি দিতে পারেন।

কোনও ব্যবহারকারীকে সাইন-আউট করতে, signOut-এ কল করুন:

Web

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Web

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});