猿问

无法使用Google登录从Firebase接收“电子邮件”以验证ID令牌

在我的网络应用程序中,我正在使用Firebase Google登录来验证用户身份,流程如下


在前端,使用户使用firebase sdk登录,获取用户的idtoken并将其发送到服务器

服务器使用idtoken验证用户并从idtoken获取电子邮件

我正在使用python后端,并且使用google.oauth2.id_token模块来验证令牌并解码令牌


问题是,对于少数用户而言,解码后的令牌剂量不包含电子邮件字段


在前端,我尝试添加userinfo.email范围,但仍然无法正常工作


我添加了这样的范围


googleProvider = new firebase.auth.GoogleAuthProvider(); googleProvider.addScope('https://www.googleapis.com/auth/userinfo.email')

在后端,我正在像这样解码令牌


decoded_token = google.oauth2.id_token.verify_firebase_token(auth_token, google.auth.transport.requests.Request())

这是为少数用户包含的已解码令牌(我将实际值更改为“ sometext”)


{

    "picture": "somtext",

    "sub": "somtext",

    "user_id": "somtext",

    "name": "somtext",

    "iss": "https://securetoken.google.com/somtext",

    "firebase": {

      "sign_in_provider": "google.com",

      "identities": {

        "google.com": [

          "somtext"

        ]

      }

    },

    "exp": 1557566434,

    "auth_time": 1557562833,

    "iat": 1557562834,

    "aud": "somtext"

  }

解码令牌中缺少电子邮件字段


对于少数用户,电子邮件字段存在,对于少数用户则不存在


我不知道自己缺少什么,我想在解码令牌中为所有用户提供电子邮件字段


达令说
浏览 180回答 2
2回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答