如何在服务器上验证从客户端发送的 idToken

我正在使用 python 跟踪 docs here。基本上我使用 emailpassword 登录客户端,返回 idToken ,然后我将此 idToken 发送到服务器进行验证,但得到如下错误。



我很确定我在与客户端相同的项目中生成了服务帐户 json。有谁知道可能是什么问题?

我的服务器代码如下所示:

from firebase_admin import credentials, initialize_app, auth

def is_authenticated(id_token):
    cred = credentials.Certificate("service-account.json")
    app = initialize_app(cred)
    return auth.verify_id_token(id_token, app)

最佳答案

除了发送电子邮件和密码,您还必须将标志 returnSecureToken 设置为 true ,否则您的 IdToken 将无效,您也不会获得刷新 token 。

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \
  -H 'Content-Type: application/json' \
  --data-binary '{"email":"[[email protected]]","password":"[PASSWORD]","returnSecureToken":true}'
Documentation

关于python - firebase 验证 id token 给 : Firebase ID token has incorrect "iss",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47817069/

10-12 00:30