使用 GoogleAuthProvider 进行 Firebase 身份验证

时间:2021-02-24 15:40:58

标签: javascript reactjs firebase react-admin

我一直在关注 this tutorial 在我的 React 管理项目中实现 firebase googleAuth。

我可以登录我的应用,然后退出。一切正常,但我在如何查看 google 发送以验证我的登录名的 tokenID 方面遇到了问题。我需要这些信息来验证最终的后端。这是我的登录表单目前的样子。

import React from "react";
import { Login, LoginForm } from "react-admin";
import StyledFirebaseAuth from 'react-firebaseui/StyledFirebaseAuth';
import firebase from 'firebase';

// Configure FirebaseUI.
const uiConfig = {
  // Popup signin flow rather than redirect flow.
  signInFlow: 'popup',
  // Redirect to /signedIn after sign in is successful. Alternatively you can provide a callbacks.signInSuccess function.
  signInSuccessUrl: '#/',
  // We will display Google as the auth provider.
  signInOptions: [
    firebase.auth.GoogleAuthProvider.PROVIDER_ID
  ]
};

const SignInScreen = () => <StyledFirebaseAuth uiConfig={uiConfig} firebaseAuth={firebase.auth()}/>;

const CustomLoginForm = props => (
  <div>
    <LoginForm {...props} />
    <SignInScreen />
  </div>
);

const CustomLoginPage = props => (
  <Login {...props}>
    <CustomLoginForm {...props}/>
  </Login>
);

export default CustomLoginPage;

知道如何从这个流程中提取这些信息,例如 ID、姓名、电子邮件等吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

哎呀,昨天用了 4 个小时都没有用。发布此内容,15 分钟后找到我自己的答案。如果您将此调用添加回 uiConfig,您可以注销凭证信息,然后从那里使用它做您想做的事情。

  callbacks: {
    signInSuccessWithAuthResult: function(authResult, redirectUrl) {
       console.log(authResult)
    },
  },