【问题标题】:Token is invalid when connecting to Facebook using Firebase in Flutter在 Flutter 中使用 Firebase 连接到 Facebook 时令牌无效
【发布时间】:2020-06-13 19:40:33
【问题描述】:

我在 Flutter 中连接到我的 Facebook 帐户,代码如下:

Future<String> signIn() async {

   final facebookLogin = FacebookLogin();
   final facebookLoginResult = await facebookLogin.logInWithReadPermissions(['email']);
   if (facebookLoginResult.status != FacebookLoginStatus.loggedIn)
     return null;
   final FacebookAccessToken myToken = facebookLoginResult.accessToken;
   if (myToken == null) return null;
   AuthCredential authCredential = FacebookAuthProvider.getCredential(accessToken: myToken.token);
   FirebaseAuth firebaseAuth = FirebaseAuth.instance;
   AuthResult authResult = await firebaseAuth.signInWithCredential(authCredential);
   IdTokenResult idToken = await authResult.user.getIdToken(refresh: true);

   return idToken.token != null ? idToken.token : null;
}

Facebook 连接成功,函数返回令牌。 然后我尝试在我的 python 后端使用这个令牌来获取用户详细信息,我从 Firebase 得到这个响应:

{'error': {'code': 400, 'message': 'INVALID_ID_TOKEN', 'errors': [{'message': 'INVALID_ID_TOKEN', 'domain': 'global', 'reason': 'invalid'}]}}

当我使用来自 createUserWithEmailAndPassword 函数的令牌并尝试在我的 python 后端读取用户详细信息时,我得到了 Firebase 的正确响应:

{'kind': 'identitytoolkit#GetAccountInfoResponse', 'users': ...}

这是我的后端代码:

import pyrebase
def get_user_details(token):
    firebaseConfig = {
      "apiKey" : "...",
      "authDomain" : "...",
      "databaseURL" : "...",
      "projectId" : "...",
      "storageBucket": "...",
      "serviceAccount" : "firebase-adminsdk...",

}

firebase = pyrebase.initialize_app(firebaseConfig)
auth = firebase.auth()
print(auth.get_account_info(token))

【问题讨论】:

  • 能否请您使用后端代码的 sn-p 编辑问题?

标签: firebase facebook flutter firebase-authentication


【解决方案1】:

问题出在 pyrebase 包上

这是从 firebase 检索用户详细信息的代码

def get_user_details(token):
    cred = credentials.Certificate('./google-services.json')
    firebase_admin.initialize_app(cred)
    response = auth.verify_id_token(token)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-19
    • 2021-03-20
    • 2017-03-26
    • 2018-09-22
    • 2011-12-16
    • 2021-11-25
    • 2017-04-16
    • 2020-05-09
    相关资源
    最近更新 更多