【问题标题】:How To Get Google User Profile Info Using Access Token From OAuth?如何使用来自 OAuth 的访问令牌获取 Google 用户配置文件信息?
【发布时间】:2022-02-06 20:17:12
【问题描述】:

我在前端使用 ReactJS:我成功地从 Google 的 Oauth 服务检索到访问令牌,但它没有为我提供“当前用户”的任何个人资料信息。

我尝试使用 /userInfo 端点、?access_token={my_access_token} 查询字符串和其他一些解决方案,但我不断收到奇怪的错误。

目前我有:

  const { access_token, refresh_token } = res.data; // now I have valid access_token
  let userInfo = await axios.get("https://www.googleapis.com/oauth2/v3/userinfo", 
  {
    headers: {
      Authorization: `Bearer ${access_token}`
    }
  }); // ERROR WHEN MAKING THIS CALL.

我的具体401错误如下:

如果有更好的方法来获取用户信息(例如名字/姓氏、电子邮件等,某种唯一 ID),请告诉我。

【问题讨论】:

    标签: reactjs django oauth-2.0 oauth google-oauth


    【解决方案1】:

    您不应依赖用户信息端点来获取用户个人资料信息。只要您向用户请求配置文件范围,甚至是电子邮件。你应该去看看People api。这将使您能够访问所有用户的个人资料数据。

    GET https://people.googleapis.com/v1/people/me?personFields=names HTTP/1.1
    
    Authorization: Bearer [YOUR_ACCESS_TOKEN]
    Accept: application/json
    

    回复

    {
      "resourceName": "people/117dd2004755326722775346",
      "etag": "%EgUBAi43PRoEAQIFBddyIMR3BzQkR2cnI1ZGc9",
      "names": [
        {
          "metadata": {
            "primary": true,
            "source": {
              "type": "PROFILE",
              "id": "117200155326727753146"
            }
          },
          "displayName": "Linda Lawton",
          "familyName": "Lawton",
          "givenName": "Linda",
          "displayNameLastFirst": "Lawton, Linda",
          "unstructuredName": "Linda Lawton"
        },
        {
          "metadata": {
            "source": {
              "type": "CONTACT",
              "id": "3faa96eb0118baa4be"
            }
          },
          "displayName": "Linda Lawton",
          "familyName": "Lawton",
          "givenName": "Linda",
          "displayNameLastFirst": "Lawton, Linda",
          "unstructuredName": "Linda Lawton"
        }
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 2017-09-06
      • 1970-01-01
      • 2021-09-12
      • 2019-07-23
      • 2018-02-05
      • 2012-08-03
      • 2021-12-23
      • 2015-04-18
      • 1970-01-01
      相关资源
      最近更新 更多