Использование токена доступа Google-провайдера Firebase для запроса API пользователей - PullRequest
0 голосов
/ 26 марта 2020

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

Это мой код в интерфейсе, который обрабатывает имя входа:

export async function handleGoogleLogin() {
    var provider = new firebase.auth.GoogleAuthProvider();
            provider.addScope('profile');
    await firebase
        .auth()
        .signInWithPopup(provider)
        .then(async function(result) {
            let token = (<any>result).credential.accessToken
            ...

Это отправляет токен бэкэнд-API, который пытается получить информацию как таковую с помощью пакета googleapis:

const people = google.people({
          version: 'v1',
          auth: createDto.oAuthToken
        })
        const res = await people.people.get({
          resourceName: 'people/me',
          personFields: 'emailAddresses, names'
        })
...

Когда я go до https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=REDACTED, Я вижу, что мне предоставлены правильные области действия.

{
  "issued_to": "REDACTED",
  "audience": "REDACTED",
  "user_id": "REDACTED",
  "scope": "openid https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile",
  "expires_in": 3563,
  "email": "REDACTED",
  "verified_email": true,
  "access_type": "online"
}

Однако выходные данные конечной точки, запрошенные API Google, возвращают следующее:

https://people.googleapis.com/v1/people/me?personFields=emailAddresses%2C%20names&key=REDACTED

{
  "error": {
    "code": 400,
    "message": "API key not valid. Please pass a valid API key.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.Help",
        "links": [
          {
            "description": "Google developers console",
            "url": "https://console.developers.google.com"
          }
        ]
      }
    ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...