【问题标题】:Get user profile details from Google using access token使用访问令牌从 Google 获取用户个人资料详细信息
【发布时间】:2021-05-30 07:41:07
【问题描述】:

我们有在 react native 中开发的移动应用程序,我们必须在其中实现 Google 和 Facebook 登录。我们有 RN 库,我们将使用它来获取 Facebook 和 Google 用户的个人资料详细信息。但是我们的要求就像我们只需要将访问令牌传递给在 asp.net core 中开发的 web api,并且使用访问令牌我们必须在 asp.net core web api 中验证访问令牌并获取用户的个人资料详细信息使用 Facebook 或 Google API。

它适用于 Facebook api,下面是相同的代码

var httpClient = new HttpClient { BaseAddress = new Uri("https://graph.facebook.com/v2.9/") };
var response = await httpClient.GetAsync($"me?access_token={token}&fields=id,name,email,first_name,last_name,age_range,birthday,gender,locale,picture");

同样,当我们为google传递访问令牌(id_token)时,它不起作用,下面是相同的代码,

var token ="eyJhb.eyJpc....";
var httpClient1 = new HttpClient { BaseAddress = new Uri("https://www.googleapis.com/oauth2/v3/") };
var response1 = await httpClient1.GetAsync($"userinfo?access_token={token}");

谁能帮助我,我们如何验证访问令牌并获取用户的个人资料详细信息?

提前致谢。

【问题讨论】:

    标签: authentication facebook-graph-api google-api jwt asp.net-core-webapi


    【解决方案1】:

    您可以通过向下一个端点发出 GET 请求来验证您的“id_token”并同时获取一些用户配置文件详细信息: “https://oauth2.googleapis.com/tokeninfo?id_token=XYZ123”。

    var token ="eyJhb.eyJpc....";
    var httpClient1 = new HttpClient { BaseAddress = new Uri("https://oauth2.googleapis.com/") };
    var response1 = await httpClient1.GetAsync($"tokeninfo?id_token={token}");
    

    如 google 文档“https://developers.google.com/identity/sign-in/web/backend-auth”(调用 tokeninfo 端点)部分中所述。

    但是如果您想访问 google api 服务: “id_token”并不意味着用于访问 google api 服务,那么您将需要一个“access_token”而不是“id_token”,您可以按照下一个文档进行操作: “https://developers.google.com/identity/protocols/oauth2”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 2016-05-05
      • 1970-01-01
      • 1970-01-01
      • 2014-04-19
      • 2013-07-02
      相关资源
      最近更新 更多