Google 致力于为黑人社区推动种族平等。查看具体举措

জাভাস্ক্রিপ্ট সহ গিটহাব ব্যবহার করে প্রমাণীকরণ করুন

আপনি আপনার ব্যবহারকারীদের আপনার অ্যাপ্লিকেশনে গিটিহাব প্রমাণীকরণকে একীভূত করে ফায়ারবেসের সাথে তাদের গিটহাব অ্যাকাউন্টগুলি ব্যবহার করে প্রমাণীকরণ করতে পারবেন। আপনি সাইন-ইন প্রবাহটি চালানোর জন্য ফায়ারবেস এসডিকে ব্যবহার করে বা গিটহাব ওআউথ ২.০ প্রবাহকে ম্যানুয়ালি চালিয়ে এবং ফায়ারবেসে ফলাফল অ্যাক্সেস টোকনটি পাস করে আপনি গিটহাব প্রমাণীকরণকে সংহত করতে পারেন।

তুমি শুরু করার আগে

  1. আপনার জাভাস্ক্রিপ্ট প্রকল্প Firebase যোগ করুন
  2. ইন Firebase কনসোল , প্রমাণীকরণ অধ্যায় খুলুন।
  3. পদ্ধতি ট্যাবে সাইন অন, GitHub প্রদানকারী সক্রিয় করুন।
  4. ক্লায়েন্ট আইডি এবং যে প্রদানকারীর ডেভেলপার প্রদানকারী কনফিগারেশন কনসোল থেকে ক্লায়েন্ট সিক্রেট যোগ করুন
    1. আপনার অ্যাপ নিবন্ধন GitHub থেকে একটি ডেভেলপার অ্যাপ্লিকেশন হিসেবে এবং আপনার অ্যাপ্লিকেশনের OAuth এর 2.0 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট পেতে।
    2. নিশ্চিত করুন যে আপনার Firebase OAuth এর পুনর্নির্দেশ কোনো URI (যেমন my-app-12345.firebaseapp.com/__/auth/handler ) আপনার উপর আপনার অ্যাপ্লিকেশনের সেটিংস পৃষ্ঠায় আপনার অনুমোদন কলব্যাক URL হিসেবে সেট করা হয় GitHub অ্যাপ্লিকেশনের কনফিগ
  5. সংরক্ষণ ক্লিক করুন।

ফায়ারবেস এসডিকে দিয়ে সাইন ইন প্রবাহটি পরিচালনা করুন

আপনি যদি কোনও ওয়েব অ্যাপ তৈরি করে থাকেন তবে ফায়ারবেস ব্যবহারকারীদের তাদের গিটহাব অ্যাকাউন্টগুলি ব্যবহার করে প্রমাণীকরণের সহজতম উপায় হ'ল ফায়ারবেস জাভাস্ক্রিপ্ট এসডিকে দিয়ে সাইন ইন প্রবাহ পরিচালনা করা। (আপনি যদি নোড.জেএস বা অন্যান্য ব্রাউজার-নন পরিবেশে কোনও ব্যবহারকারীকে প্রমাণীকরণ করতে চান তবে আপনাকে অবশ্যই সাইন ইন ফ্লোটি ম্যানুয়ালি হ্যান্ডেল করতে হবে))

ফায়ারবেস জাভাস্ক্রিপ্ট এসডিকে দিয়ে সাইন-ইন প্রবাহ পরিচালনা করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. গিটহাব সরবরাহকারী অবজেক্টের একটি উদাহরণ তৈরি করুন:

    ওয়েব ভি 8

    var provider = new firebase.auth.GithubAuthProvider();

    ওয়েব ভি 9

    import { GithubAuthProvider } from "firebase/auth";
    
    const provider = new GithubAuthProvider();
  2. ঐচ্ছিক: 2.0 সুযোগ উল্লেখ অতিরিক্ত OAuth এর যে আপনার প্রমাণীকরণ প্রদানকারীর থেকে অনুরোধ করতে চাই। একটি সুযোগ যোগ করার জন্য, কল addScope । উদাহরণ স্বরূপ:

    ওয়েব ভি 8

    provider.addScope('repo');

    ওয়েব ভি 9

    provider.addScope('repo');
    দেখুন প্রমাণীকরণ প্রদানকারী ডকুমেন্টেশন
  3. ঐচ্ছিক: অতিরিক্ত কাস্টম OAuth এর প্রদানকারী পরামিতি উল্লেখ করুন যে আপনি যদি OAuth অনুরোধ পাঠাতে চাই। একটি কাস্টম প্যারামিটার যোগ করতে, কল setCustomParameters একটি অবজেক্ট হিসেবে OAuth এর প্রদানকারী ডকুমেন্টেশন এবং সংশ্লিষ্ট মান দ্বারা নির্দিষ্ট কী সম্বলিত সঙ্গে সক্রিয়া প্রদানকারী করেন। উদাহরণ স্বরূপ:

    ওয়েব ভি 8

    provider.setCustomParameters({
      'allow_signup': 'false'
    });

    ওয়েব ভি 9

    provider.setCustomParameters({
      'allow_signup': 'false'
    });
    সংরক্ষিত প্রয়োজনীয় OAuth পরামিতিগুলির অনুমতি নেই এবং তা উপেক্ষা করা হবে। দেখুন প্রমাণীকরণ প্রদানকারী রেফারেন্স আরো বিস্তারিত জানার জন্য।
  4. গিটহাব সরবরাহকারী অবজেক্টটি ব্যবহার করে ফায়ারবেস দিয়ে প্রমাণীকরণ করুন। আপনি পপ-আপ উইন্ডো খোলার মাধ্যমে বা সাইন-ইন পৃষ্ঠাতে পুনর্নির্দেশের মাধ্যমে আপনার ব্যবহারকারীদের তাদের গিটহাব অ্যাকাউন্টে সাইন ইন করার জন্য অনুরোধ করতে পারেন। পুনঃনির্দেশ পদ্ধতিটি মোবাইল ডিভাইসে পছন্দ করা হয়।
    • একটি পপ-আপ উইন্ডো মাধ্যমে সাইন ইন করুন, কল signInWithPopup :

      ওয়েব ভি 8

      firebase
        .auth()
        .signInWithPopup(provider)
        .then((result) => {
          /** @type {firebase.auth.OAuthCredential} */
          var credential = result.credential;
      
          // This gives you a GitHub Access Token. You can use it to access the GitHub API.
          var token = credential.accessToken;
      
          // The signed-in user info.
          var user = result.user;
          // ...
        }).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;
          // ...
        });

      ওয়েব ভি 9

      import { getAuth, signInWithPopup, GithubAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      signInWithPopup(auth, provider)
        .then((result) => {
          // This gives you a GitHub Access Token. You can use it to access the GitHub API.
          const credential = GithubAuthProvider.credentialFromResult(result);
          const token = credential.accessToken;
      
          // The signed-in user info.
          const user = result.user;
          // ...
        }).catch((error) => {
          // Handle Errors here.
          const errorCode = error.code;
          const errorMessage = error.message;
          // The email of the user's account used.
          const email = error.email;
          // The AuthCredential type that was used.
          const credential = GithubAuthProvider.credentialFromError(error);
          // ...
        });
      এছাড়াও খেয়াল করুন যে আপনি গিটহাব সরবরাহকারীর OAuth টোকেনটি পুনরুদ্ধার করতে পারেন যা গিটহাব এপিআই ব্যবহার করে অতিরিক্ত ডেটা আনতে ব্যবহার করা যেতে পারে।

      এটিও যেখানে আপনি ত্রুটিগুলি ধরতে এবং পরিচালনা করতে পারেন। ত্রুটি কোড একটি তালিকা দেখার জন্য কটাক্ষপাত আছে প্রমাণীকরণ রেফারেন্স ডক্স

    • সাইন-ইন পৃষ্ঠা, কল পুনঃনির্দেশিত দ্বারা সাইন ইন করার জন্য signInWithRedirect :

      ওয়েব ভি 8

      firebase.auth().signInWithRedirect(provider);

      ওয়েব ভি 9

      import { getAuth, signInWithRedirect } from "firebase/auth";
      
      const auth = getAuth();
      signInWithRedirect(auth, provider);
      তারপর, আপনি এছাড়াও কল করে GitHub প্রদানকারীর OAuth টোকেন উদ্ধার করতে পারেন getRedirectResult যখন আপনার পৃষ্ঠা লোড:

      ওয়েব ভি 8

      firebase.auth()
        .getRedirectResult()
        .then((result) => {
          if (result.credential) {
            /** @type {firebase.auth.OAuthCredential} */
            var credential = result.credential;
      
            // This gives you a GitHub Access Token. You can use it to access the GitHub API.
            var token = credential.accessToken;
            // ...
          }
      
          // The signed-in user info.
          var user = result.user;
        }).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;
          // ...
        });

      ওয়েব ভি 9

      import { getAuth, getRedirectResult, GithubAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      getRedirectResult(auth)
        .then((result) => {
          const credential = GithubAuthProvider.credentialFromResult(result);
          if (credential) {
            // This gives you a GitHub Access Token. You can use it to access the GitHub API.
            const token = credential.accessToken;
            // ...
          }
      
          // The signed-in user info.
          const user = result.user;
        }).catch((error) => {
          // Handle Errors here.
          const errorCode = error.code;
          const errorMessage = error.message;
          // The email of the user's account used.
          const email = error.email;
          // The AuthCredential type that was used.
          const credential = GithubAuthProvider.credentialFromError(error);
          // ...
        });
      এটিও যেখানে আপনি ত্রুটিগুলি ধরতে এবং পরিচালনা করতে পারেন। ত্রুটি কোড একটি তালিকা দেখার জন্য কটাক্ষপাত আছে প্রমাণীকরণ রেফারেন্স ডক্স

সাইন ইন ফ্লোটি ম্যানুয়ালি হ্যান্ডেল করুন

গিটহাব ওআউথ ২.০ শেষপয়েন্টগুলিতে কল করে আপনি সাইন ইন ফ্লো পরিচালনা করে ফায়ারবেসকে একটি গিটহাব অ্যাকাউন্ট ব্যবহার করে প্রমাণীকরণ করতে পারেন:

  1. আপনার অ্যাপ্লিকেশন মধ্যে অনুসরণ করে GitHub প্রমাণীকরণ সংহত বিকাশকারীর ডকুমেন্টেশন । গিটহাব সাইন ইন ফ্লো শেষে, আপনি একটি OAuth 2.0 অ্যাক্সেস টোকন পাবেন receive
  2. যদি আপনাকে কোনও নোড.জেএস অ্যাপ্লিকেশনটিতে সাইন ইন করতে হয় তবে নোড.জেএস অ্যাপ্লিকেশনটিতে OAuth অ্যাক্সেস টোকেন প্রেরণ করুন।
  3. কোনও ব্যবহারকারী গিটহাবের সাথে সফলভাবে সাইন ইন করার পরে, ফায়ারবেস শংসাপত্রের জন্য OAuth 2.0 অ্যাক্সেস টোকেনটি বিনিময় করুন:

    ওয়েব ভি 8

    var credential = firebase.auth.GithubAuthProvider.credential(token);

    ওয়েব ভি 9

    import { GithubAuthProvider } from "firebase/auth";
    
    const credential = GithubAuthProvider.credential(token);
  4. ফায়ারবেস শংসাপত্র ব্যবহার করে ফায়ারবেস দিয়ে প্রমাণীকরণ করুন:

    ওয়েব ভি 8

    // Sign in with the credential from the user.
    firebase.auth()
      .signInWithCredential(credential)
      .then((result) => {
        // Signed in 
        // ...
      })
      .catch((error) => {
        // Handle Errors here.
        const errorCode = error.code;
        const errorMessage = error.message;
        // The email of the user's account used.
        const email = error.email;
        // ...
      });

    ওয়েব ভি 9

    import { getAuth, signInWithCredential } from "firebase/auth";
    
    // Sign in with the credential from the user.
    const auth = getAuth();
    signInWithCredential(auth, credential)
      .then((result) => {
        // Signed in 
        // ...
      })
      .catch((error) => {
        // Handle Errors here.
        const errorCode = error.code;
        const errorMessage = error.message;
        // The email of the user's account used.
        const email = error.email;
        // ...
      });

ক্রোম এক্সটেনশনে ফায়ারবেস দিয়ে প্রমাণীকরণ করুন

আপনি যদি ক্রোম এক্সটেনশন অ্যাপ্লিকেশন তৈরি করে থাকেন তবে আপনাকে অবশ্যই আপনার ক্রোম এক্সটেনশান আইডি যুক্ত করতে হবে:

  1. আপনার প্রকল্প খুলুন Firebase কনসোল
  2. প্রমাণীকরণ বিভাগে, সাইন-ইন পদ্ধতি পৃষ্ঠা খুলুন।
  3. : একটি কোনো URI অনুমোদিত ডোমেন তালিকায় নিচের মত যোগ
    chrome-extension://CHROME_EXTENSION_ID

শুধু পপআপ কার্যকলাপ ( signInWithPopup এবং linkWithPopup ), ক্রোম এক্সটেনশন করার জন্য পাওয়া যায় Chrome এক্সটেনশন HTTP- র পুনঃনির্দেশ ব্যবহার করতে পারবেন না হিসাবে। ব্রাউজার অ্যাকশন পপআপের পরিবর্তে আপনার এই পদ্ধতিগুলি পটভূমি স্ক্রিপ্ট থেকে কল করা উচিত, কারণ প্রমাণীকরণ পপআপ ব্রাউজার ক্রিয়া পপআপ বাতিল করে দেয়।

আপনার Chrome এক্সটেনশন ম্যানিফেস্টে ফাইল বানান আপনি যোগ নিশ্চিত করুন যে https://apis.google.com করতে URL content_security_policy allowlist।

পরবর্তী পদক্ষেপ

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

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

  • আপনার Firebase রিয়েলটাইম ডাটাবেস এবং ক্লাউড স্টোরেজ সিকিউরিটি রুলস , আপনি পেতে পারেন সাইন ইন থেকে ব্যবহারকারী এর অনন্য ব্যবহারকারী আইডি auth পরিবর্তনশীল, এবং এটি ব্যবহার কোন ডেটা একটি ব্যবহারকারী অ্যাক্সেস করতে পারবেন নিয়ন্ত্রন করতে পারেন।

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

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

ওয়েব ভি 8

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

ওয়েব ভি 9

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

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