Stay organized with collections
Save and categorize content based on your preferences.
Properties
providerId
providerId: string
Static GITHUB_SIGN_IN_METHOD
GITHUB_SIGN_IN_METHOD: string
Static PROVIDER_ID
PROVIDER_ID: string
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-09-29 UTC.
[null,null,["Last updated 2022-09-29 UTC."],[],[],null,["- [firebase](/docs/reference/node/firebase).\n- [auth](/docs/reference/node/firebase.auth).\n- GithubAuthProvider \nGitHub auth provider.\n\nGitHub requires an OAuth 2.0 redirect, so you can either handle the redirect\ndirectly, or use the signInWithPopup handler:\n\nexample\n:\n\n // Using a redirect.\n firebase.auth().getRedirectResult().then(function(result) {\n if (result.credential) {\n // This gives you a GitHub Access Token.\n var token = result.credential.accessToken;\n }\n var user = result.user;\n }).catch(function(error) {\n // Handle Errors here.\n var errorCode = error.code;\n var errorMessage = error.message;\n // The email of the user's account used.\n var email = error.email;\n // The firebase.auth.AuthCredential type that was used.\n var credential = error.credential;\n if (errorCode === 'auth/account-exists-with-different-credential') {\n alert('You have signed up with a different provider for that email.');\n // Handle linking here if your app allows it.\n } else {\n console.error(error);\n }\n });\n\n // Start a sign in process for an unauthenticated user.\n var provider = new firebase.auth.GithubAuthProvider();\n provider.addScope('repo');\n firebase.auth().signInWithRedirect(provider);\n\n\nexample\n:\n\n // With popup.\n var provider = new firebase.auth.GithubAuthProvider();\n provider.addScope('repo');\n firebase.auth().signInWithPopup(provider).then(function(result) {\n // This gives you a GitHub Access Token.\n var token = result.credential.accessToken;\n // The signed-in user info.\n var user = result.user;\n }).catch(function(error) {\n // Handle Errors here.\n var errorCode = error.code;\n var errorMessage = error.message;\n // The email of the user's account used.\n var email = error.email;\n // The firebase.auth.AuthCredential type that was used.\n var credential = error.credential;\n if (errorCode === 'auth/account-exists-with-different-credential') {\n alert('You have signed up with a different provider for that email.');\n // Handle linking here if your app allows it.\n } else {\n console.error(error);\n }\n });\n\n\nsee\n\n: [firebase.auth.Auth.onAuthStateChanged](/docs/reference/node/firebase.auth.Auth#onauthstatechanged) to receive sign in state\n changes.\n\nImplements\n\n- [AuthProvider](/docs/reference/node/firebase.auth.AuthProvider)\n\nIndex\n\nProperties\n\n- [providerId](/docs/reference/node/firebase.auth.GithubAuthProvider#providerid)\n- [GITHUB_SIGN_IN_METHOD](/docs/reference/node/firebase.auth.GithubAuthProvider#github_sign_in_method)\n- [PROVIDER_ID](/docs/reference/node/firebase.auth.GithubAuthProvider#provider_id)\n\nMethods\n\n- [addScope](/docs/reference/node/firebase.auth.GithubAuthProvider#addscope)\n- [setCustomParameters](/docs/reference/node/firebase.auth.GithubAuthProvider#setcustomparameters)\n- [credential](/docs/reference/node/firebase.auth.GithubAuthProvider#credential)\n\nProperties\n\nproviderId \nproviderId: string\n| Implementation of [AuthProvider](/docs/reference/node/firebase.auth.AuthProvider).[providerId](/docs/reference/node/firebase.auth.AuthProvider#providerid)\n| Inherited from [GithubAuthProvider](/docs/reference/node/firebase.auth.GithubAuthProvider).[providerId](/docs/reference/node/firebase.auth.GithubAuthProvider#providerid)\n\nStatic GITHUB_SIGN_IN_METHOD \nGITHUB_SIGN_IN_METHOD: string \nThis corresponds to the sign-in method identifier as returned in\n[firebase.auth.Auth.fetchSignInMethodsForEmail](/docs/reference/node/firebase.auth.Auth#fetchsigninmethodsforemail).\n\nStatic PROVIDER_ID \nPROVIDER_ID: string\n\nMethods\n\naddScope\n\n- addScope ( scope : string ) : [AuthProvider](/docs/reference/node/firebase.auth.AuthProvider)\n-\n Inherited from [GithubAuthProvider](/docs/reference/node/firebase.auth.GithubAuthProvider).[addScope](/docs/reference/node/firebase.auth.GithubAuthProvider#addscope) \n\n Parameters\n -\n\n scope: string \n Github OAuth scope.\n\n Returns [AuthProvider](/docs/reference/node/firebase.auth.AuthProvider)\n\n The provider instance itself.\n\nsetCustomParameters\n\n- setCustomParameters ( customOAuthParameters : Object ) : [AuthProvider](/docs/reference/node/firebase.auth.AuthProvider)\n-\n Inherited from [GithubAuthProvider](/docs/reference/node/firebase.auth.GithubAuthProvider).[setCustomParameters](/docs/reference/node/firebase.auth.GithubAuthProvider#setcustomparameters) \n Sets the OAuth custom parameters to pass in a GitHub OAuth request for popup\n and redirect sign-in operations.\n Valid parameters include 'allow_signup'.\n For a detailed list, check the\n [GitHub](https://developer.github.com/v3/oauth/) documentation.\n Reserved required OAuth 2.0 parameters such as 'client_id', 'redirect_uri',\n 'scope', 'response_type' and 'state' are not allowed and will be ignored.\n\n Parameters\n -\n\n customOAuthParameters: Object \n The custom OAuth parameters to pass\n in the OAuth request.\n\n Returns [AuthProvider](/docs/reference/node/firebase.auth.AuthProvider)\n\n The provider instance itself.\n\nStatic credential\n\n- credential ( token : string ) : [OAuthCredential](/docs/reference/node/firebase.auth.OAuthCredential)\n-\n\n example\n :\n\n var cred = firebase.auth.GithubAuthProvider.credential(\n // `event` from the Github auth.authResponseChange callback.\n event.authResponse.accessToken\n );\n\n\n Parameters\n -\n\n token: string \n Github access token.\n\n Returns [OAuthCredential](/docs/reference/node/firebase.auth.OAuthCredential)\n\nThe auth provider credential."]]
GitHub auth provider.
GitHub requires an OAuth 2.0 redirect, so you can either handle the redirect directly, or use the signInWithPopup handler:
// Using a redirect. firebase.auth().getRedirectResult().then(function(result) { if (result.credential) { // This gives you a GitHub Access Token. var token = result.credential.accessToken; } var user = result.user; }).catch(function(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; if (errorCode === 'auth/account-exists-with-different-credential') { alert('You have signed up with a different provider for that email.'); // Handle linking here if your app allows it. } else { console.error(error); } }); // Start a sign in process for an unauthenticated user. var provider = new firebase.auth.GithubAuthProvider(); provider.addScope('repo'); firebase.auth().signInWithRedirect(provider);
// With popup. var provider = new firebase.auth.GithubAuthProvider(); provider.addScope('repo'); firebase.auth().signInWithPopup(provider).then(function(result) { // This gives you a GitHub Access Token. var token = result.credential.accessToken; // The signed-in user info. var user = result.user; }).catch(function(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; if (errorCode === 'auth/account-exists-with-different-credential') { alert('You have signed up with a different provider for that email.'); // Handle linking here if your app allows it. } else { console.error(error); } });
firebase.auth.Auth.onAuthStateChanged to receive sign in state changes.