Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

GitHub'ı JavaScript ile Kullanarak Kimlik Doğrulama

GitHub kimlik doğrulamasını uygulamanıza entegre ederek, kullanıcılarınızın GitHub hesaplarını kullanarak Firebase ile kimlik doğrulamasına izin verebilirsiniz. GitHub kimlik doğrulamasını, oturum açma akışını gerçekleştirmek için Firebase SDK'yı kullanarak veya GitHub OAuth 2.0 akışını manuel olarak gerçekleştirip elde edilen erişim jetonunu Firebase'e ileterek entegre edebilirsiniz.

Sen başlamadan önce

  1. Firebase'i JavaScript projenize ekleyin .
  2. In Firebase konsoluna , Auth bölümünü açın.
  3. Oturum açma yöntemi sekmesinde GitHub sağlayıcısını etkinleştirin.
  4. İstemci Kimliğini ve İstemci Sırrını bu sağlayıcının geliştirici konsolundan sağlayıcı yapılandırmasına ekleyin:
    1. Uygulamanızı GitHub'da bir geliştirici uygulaması olarak kaydedin ve uygulamanızın OAuth 2.0 İstemci Kimliği ve İstemci Sırrını alın .
    2. my-app-12345.firebaseapp.com/__/auth/handler OAuth yönlendirme URI'nizin (ör. my-app-12345.firebaseapp.com/__/auth/handler ), GitHub uygulamanızın yapılandırmasında uygulamanızın ayarlar sayfasında Yetkilendirme geri arama URL'niz olarak ayarlandığından emin olun.
  5. Kaydet'i tıklayın .

Firebase SDK ile oturum açma akışını yönetin

Bir web uygulaması oluşturuyorsanız, GitHub hesaplarını kullanarak kullanıcılarınızı Firebase ile doğrulamanın en kolay yolu, oturum açma akışını Firebase JavaScript SDK ile yönetmektir. (Node.js'de veya tarayıcı olmayan başka bir ortamda bir kullanıcının kimliğini doğrulamak istiyorsanız, oturum açma akışını manuel olarak işlemeniz gerekir.)

Firebase JavaScript SDK ile oturum açma akışını yönetmek için şu adımları izleyin:

  1. GitHub sağlayıcı nesnesinin bir örneğini oluşturun:
    var provider = new firebase.auth.GithubAuthProvider();
  2. İsteğe bağlı : Kimlik doğrulama sağlayıcısından talep etmek istediğiniz ek OAuth 2.0 kapsamlarını belirtin. Bir kapsam eklemek için addScope . Örneğin:
    provider.addScope('repo');
    Kimlik doğrulama sağlayıcısı belgelerine bakın.
  3. İsteğe bağlı : OAuth isteğiyle göndermek istediğiniz ek özel OAuth sağlayıcı parametrelerini belirtin. Özel bir parametre eklemek için, OAuth sağlayıcı belgelerinde belirtilen anahtarı ve karşılık gelen değeri içeren bir nesneyle başlatılmış sağlayıcıda setCustomParameters çağırın. Örneğin:
    provider.setCustomParameters({
      'allow_signup': 'false'
    });
    Ayrılmış gerekli OAuth parametrelerine izin verilmiyor ve yok sayılacak. Daha fazla ayrıntı için kimlik doğrulama sağlayıcısı referansına bakın.
  4. GitHub sağlayıcı nesnesini kullanarak Firebase ile kimlik doğrulaması yapın. Bir açılır pencere açarak veya oturum açma sayfasına yönlendirerek kullanıcılarınızdan GitHub hesaplarıyla oturum açmalarını isteyebilirsiniz. Yönlendirme yöntemi mobil cihazlarda tercih edilir.
    • Bir açılır pencereyle oturum açmak için signInWithPopup arayın:
      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;
          // ...
        });
      Ayrıca GitHub API'lerini kullanarak ek verileri almak için kullanılabilen GitHub sağlayıcısının OAuth belirtecini alabileceğinizi unutmayın.

      Bu aynı zamanda hataları yakalayabileceğiniz ve işleyebileceğiniz yerdir. Hata kodlarının bir listesi için Yetkilendirme Referans Belgelerine bakın .

    • Oturum açma sayfasına yeniden yönlendirerek oturum açmak için signInWithRedirect arayın:
      firebase.auth().signInWithRedirect(provider);
      Ardından, sayfanız yüklendiğinde getRedirectResult çağırarak GitHub sağlayıcısının OAuth belirtecini de alabilirsiniz:
      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;
          // ...
        });
      Burası aynı zamanda hataları yakalayabileceğiniz ve işleyebileceğiniz yerdir. Hata kodlarının bir listesi için Yetkilendirme Referans Belgelerine bakın .

Oturum açma akışını manuel olarak yönetin

Ayrıca GitHub OAuth 2.0 uç noktalarını çağırarak oturum açma akışını yöneterek bir GitHub hesabı kullanarak Firebase ile kimlik doğrulaması yapabilirsiniz:

  1. Geliştiricinin belgelerini izleyerek GitHub kimlik doğrulamasını uygulamanıza entegre edin. GitHub oturum açma akışının sonunda, bir OAuth 2.0 erişim jetonu alacaksınız.
  2. Bir Node.js uygulamasında oturum açmanız gerekiyorsa, OAuth erişim jetonunu Node.js uygulamasına gönderin.
  3. Bir kullanıcı GitHub ile başarılı bir şekilde oturum açtıktan sonra, OAuth 2.0 erişim jetonunu bir Firebase kimlik bilgisi ile değiştirin:
    var credential = firebase.auth.GithubAuthProvider.credential(token);
  4. Firebase kimlik bilgilerini kullanarak Firebase ile kimlik doğrulayın:
    // 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;
        // ...
      });

Bir Chrome uzantısında Firebase ile kimlik doğrulayın

Bir Chrome uzantısı uygulaması oluşturuyorsanız, Chrome uzantı kimliğinizi eklemeniz gerekir:

  1. Firebase konsolunda projenizi açın.
  2. Kimlik Doğrulama bölümünde, Oturum açma yöntemi sayfasını açın.
  3. Yetkili Etki Alanları listesine aşağıdakine benzer bir URI ekleyin:
    chrome-extension://CHROME_EXTENSION_ID

Chrome uzantıları HTTP yeniden yönlendirmelerini kullanamadığından, Chrome uzantılarında yalnızca açılır pencere işlemleri ( signInWithPopup ve linkWithPopup ) kullanılabilir. Kimlik doğrulama açılır penceresi tarayıcı eylemi açılır penceresini iptal edeceğinden, bu yöntemleri tarayıcı eylemi açılır penceresinden ziyade bir arka plan komut dosyasından çağırmalısınız.

Chrome uzantınızın manifest dosyasında https://apis.google.com URL'sini content_security_policy izin verilenler listesine eklediğinizden emin olun.

Sonraki adımlar

Bir kullanıcı ilk kez oturum açtıktan sonra, yeni bir kullanıcı hesabı oluşturulur ve oturum açan kullanıcı kimlik bilgilerine (yani kullanıcı adı ve parolası, telefon numarası veya kimlik doğrulama sağlayıcı bilgileri) bağlanır. Bu yeni hesap, Firebase projenizin bir parçası olarak depolanır ve kullanıcının nasıl oturum açtığına bakılmaksızın projenizdeki her uygulamada bir kullanıcıyı tanımlamak için kullanılabilir.

  • Uygulamalarınızda, kullanıcınızın kimlik doğrulama durumunu öğrenmenin önerilen yolu, Auth nesnesine bir gözlemci ayarlamaktır. Daha sonra kullanıcının temel profil bilgilerini User nesnesinden alabilirsiniz. Kullanıcıları Yönetme konusuna bakın.

  • Firebase Realtime Database ve Cloud Storage Güvenlik Kurallarınızda , oturum auth kullanıcının benzersiz kullanıcı kimliğini auth değişkeninden alabilir ve bir kullanıcının hangi verilere erişebileceğini kontrol etmek için kullanabilirsiniz.

Kimlik doğrulama sağlayıcı kimlik bilgilerini mevcut bir kullanıcı hesabına bağlayarak , kullanıcıların birden çok kimlik doğrulama sağlayıcısı kullanarak uygulamanızda oturum açmasına izin verebilirsiniz .

Bir kullanıcının oturumunu kapatmak için signOut arayın:

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