如何在 ReactJS 中使用 GitHub 对 firebase 进行身份验证?
以下方法介绍了如何在 react 中使用 GitHub 对 firebase 进行身份验证。我们使用了 firebase 模块来实现这一点。
创建 React 应用程序并安装模块:
第 1 步:使用以下命令创建一个 React 应用程序:
npx create-react-app gfgapp
第 2 步:创建项目文件夹(即 gfgapp)后,使用以下命令移动到该文件夹:
cd gfgapp
项目结构:我们的项目结构将如下所示。
第 3 步:创建 ReactJS 应用程序后,使用以下命令安装 firebase 模块:
npm install firebase@8.3.1 --save
第 4 步:转到您的 firebase 仪表板并创建一个新项目并复制您的凭据。
const firebaseConfig = {
apiKey: "your api key",
authDomain: "your credentials",
projectId: "your credentials",
storageBucket: "your credentials",
messagingSenderId: "your credentials",
appId: "your credentials"
};
第 5 步:通过使用以下代码创建 Firebase.js 文件,将 Firebase 初始化到您的项目中。
Firebase.js
import firebase from 'firebase';
const firebaseConfig = {
// Your Credentials
};
firebase.initializeApp(firebaseConfig);
var auth = firebase.auth();
var provider = new firebase.auth.GithubAuthProvider();
export {auth , provider};
login.js
import {auth , provider} from './firebase';
const Login = ()=>{
// SignIn with GitHub
const submit = ()=>{
auth.signInWithPopup(provider).catch(alert);
}
return (
)
}
export default Login;
main.js
import {auth} from './firebase';
const Main = ()=>{
const logout = ()=>{
auth.signOut();
}
return(
Welcome
{
auth.currentUser.email
}
)
}
export default Main;
App.js
import './App.css';
import Login from './login';
import {auth} from './firebase';
import Main from './main';
import {useAuthState} from 'react-firebase-hooks/auth';
function App() {
const [user] = useAuthState(auth);
return (
user ? :
);
}
export default App;
第 6 步:在 GitHub 上将您的应用注册为开发者应用,并获取应用的 OAuth 2.0客户端 ID 和客户端密钥。
对于授权回调 URL ,请转到您的身份验证部分,然后单击 Github 登录方法。之后复制回调 URL。
第 7 步:现在通过输入您的客户端 ID 和客户端密码启用 Github 登录方法。
第 8 步:现在使用以下命令安装 npm 包,即 react-firebase-hooks。
npm i react-firebase-hooks
这个包帮助我们监听用户的当前状态。
第 9 步:使用以下代码创建两个文件,即login.js和main.js。
登录.js
import {auth , provider} from './firebase';
const Login = ()=>{
// SignIn with GitHub
const submit = ()=>{
auth.signInWithPopup(provider).catch(alert);
}
return (
)
}
export default Login;
main.js
import {auth} from './firebase';
const Main = ()=>{
const logout = ()=>{
auth.signOut();
}
return(
Welcome
{
auth.currentUser.email
}
)
}
export default Main;
第10步:最后在App.js文件中导入所有需要的文件,如下所示。
应用程序.js
import './App.css';
import Login from './login';
import {auth} from './firebase';
import Main from './main';
import {useAuthState} from 'react-firebase-hooks/auth';
function App() {
const [user] = useAuthState(auth);
return (
user ? :
);
}
export default App;
运行应用程序的步骤:从项目的根目录使用以下命令运行应用程序:
npm start
输出:现在打开您的浏览器并转到 http://localhost:3000/,您将看到以下输出: