前端使用firebase配置第三方登录先容(谷歌登录,facebook登录等) ...

十念  金牌会员 | 2024-6-22 12:55:16 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 567|帖子 567|积分 1701

参考文档


  • 点此处去 firebase 官网
  • 点此处去 web端的谷歌登录文档
  • 点此处去 facebook开发者官网链接
实现(谷歌登录)


  • 首先注册一个账号登录firebase(可以使用谷歌账号登录)
  • 然后创建项目(走默认配置就行了)

  • 添加应用(走默认配置),如图所示,本文先容web应用。

  • 应用添加完毕后走项目设置-如下图(进入常规界面,然后滚动条滚动至最底部,进入步调5)

  • 在项目中下载依赖并填写以下初始化代码(以下代码在 项目设置=》常规(最底部)含有)
    1)下载依赖: npm install firebase
    2)初始化代码:(只要须要使用firebase的第三方登录,无论代码中是否使用初始化信息,以下代码必须先执行!)
    1. // Import the functions you need from the SDKs you need
    2. import { initializeApp } from "firebase/app";
    3. import { getAnalytics } from "firebase/analytics";
    4. // TODO: Add SDKs for Firebase products that you want to use
    5. // https://firebase.google.com/docs/web/setup#available-libraries
    6. // Your web app's Firebase configuration
    7. // For Firebase JS SDK v7.20.0 and later, measurementId is optional
    8. // 初始化firebase的配置信息
    9. const firebaseConfig = {
    10.   apiKey: "AIzaSyBoayOSkMauSE0rq6vj4NzfsT75tWviJY0",
    11.   authDomain: "test-csdn.firebaseapp.com",
    12.   projectId: "test-csdn",
    13.   storageBucket: "test-csdn.appspot.com",
    14.   messagingSenderId: "356839085174",
    15.   appId: "1:356836085174:web:bd0ad1246d767ffce4fa57",
    16.   measurementId: "G-37QBHYS56N"
    17. };
    18. // Initialize Firebase (初始化 firebase ,这一步必须走!)
    19. const app = initializeApp(firebaseConfig);
    复制代码
  • 假如想看详情可以至 web端的谷歌登录文档 看。
    1) 创建 Google 提供方对象实例
    1. import { GoogleAuthProvider } from "firebase/auth";
    2. const provider = new GoogleAuthProvider();
    复制代码
    2) 使用弹出式窗口登录
    1. import { getAuth, signInWithPopup, GoogleAuthProvider } from "firebase/auth";
    2. const auth = getAuth();
    3. signInWithPopup(auth, provider)
    4.   .then((result) => {
    5.     // This gives you a Google Access Token. You can use it to access the Google API.
    6.     const credential = GoogleAuthProvider.credentialFromResult(result);
    7.     // 用户token
    8.     const token = credential.accessToken;
    9.     // 用户登录后所获得的信息 The signed-in user info.
    10.     const user = result.user;
    11.     // IdP data available using getAdditionalUserInfo(result)
    12.     // ...
    13.   }).catch((error) => {
    14.     // Handle Errors here.
    15.     const errorCode = error.code;
    16.     const errorMessage = error.message;
    17.     // The email of the user's account used.
    18.     const email = error.customData.email;
    19.     // The AuthCredential type that was used.
    20.     const credential = GoogleAuthProvider.credentialFromError(error);
    21.     // ...
    22.   });
    复制代码
    3)此时执行会发现无法进行谷歌登录,需到firebase背景管理系统配置google登录



    4)此时谷歌登录调用则有效果了(项目启动域名必须为 http://localhost:xxxx/,假如不为这个,请配置域名白名单)
    5)打包后发布到服务器上后,须要配置域名白名单,否则上线就无法第三方登录

    6)至此谷歌登录配置竣事;
实现(facebook登录)


  • facebook第三方登录须要到 facebook的背景管理系统配置流程。facebook开发者官网链接
  • 创建自己的应用(流程跟着官网走就行了),然后预备这个界面(应用编号和应用密钥)

  • 到firebase上增长答应facebook登录

  • 在这里填写facebook的应用编码和应用密钥。

  • 最关键的一步:复制firebase中的OAuth(上图密钥下面那个地点:https://test-85788.firebaseapp.com/__/auth/handler),然后配置到facebook中的重定向OAuth,所在位置看下图



  • 完成上面步调后打包至测试服地点或者线上测试!facebook登录不支持 http 协议。
留意事项


  • facebook配置出现以下图片问题的原因之一:http链接无法使用facebook登录。必须配置https才行(意味着线下无法测试facebook登录)!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

十念

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表