Не получается "электронная почта" от firebase, проверьте идентификатор токена с помощью входа в Google - PullRequest
0 голосов
/ 11 мая 2019

В моем веб-приложении я использую вход через Google Firebase для аутентификации пользователей. Процесс выглядит следующим образом:

  1. Во внешнем интерфейсе пользователь должен войти в систему с помощью Firebase SDK и получить идентификатор пользователя для пользователя.отправить его на сервер
  2. Сервер использует 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"
  }

поле электронной почты отсутствует в декодированном токене

для нескольких пользователей поле электронной почты присутствует для немногих, оно естьненастоящее время

Я не знаю, что мне не хватает, я хочу, чтобы поле электронной почты было в декодированном токене для всех пользователей

...