我们有在react原生开发的移动应用程序,其中我们必须实现谷歌和Facebook登录。我们有RN库,我们将使用它来获取Facebook和Google用户的个人资料详细信息。但我们的要求是,我们只需要将访问令牌传递给在asp.net核心中开发的web api,并使用访问令牌来验证asp.net核心web api中的访问令牌,并使用Facebook或Google Apis获取用户的个人资料详细信息。
它在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}");
谁可以帮助我,我们如何验证访问令牌并获取用户的配置文件详细信息?
提前谢谢。
发布于 2021-03-02 17:55:25
您可以通过向下一个端点"https://oauth2.googleapis.com/tokeninfo?id_token=XYZ123"“发出get请求,同时验证您的"id_token”并获取一些用户配置文件的详细信息。
var token ="eyJhb.eyJpc....";
var httpClient1 = new HttpClient { BaseAddress = new Uri("https://oauth2.googleapis.com/") };
var response1 = await httpClient1.GetAsync($"tokeninfo?id_token={token}");
如谷歌文档"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“。
https://stackoverflow.com/questions/66410992
复制相似问题