如果用户是通过谷歌认证,我需要得到他的个人资料图片。
如果用户是通过Facebook验证我得到他的个人资料图片与此代码:
var info = await _signInManager.GetExternalLoginInfoAsync();
var identifier = info.Principal.FindFirstValue(ClaimTypes.NameIdentifier);
var picture = $"https://graph.facebook.com/{identifier}/picture"; // 3
那么,我需要使用哪段代码在3行中获取用户的个人资料图片,以防用户通过谷歌认证?
3条答案
按热度按时间pxy2qtax1#
访问用户配置文件图片,完整解决方案。
堆栈:
ASP网络身份4 v4 + ASP网络身份+ Google People Api
步骤
1.准备
1.1我使用默认的HttpClient生成对Google API的HTTP请求
1.2安装NUGET System.Net.Http.Json以简化序列化。1.3使用[json to c#]工具,创建如下所示的DTO:
2.身份服务器:当用户确认外部信息数据后,发送http get请求,检索头像图片url:
2.1具有Asp Net身份的身份服务器〉登录〉在后确认异步时:亮点:
这️只是上面完整方法的一小部分。
3. Identity Server〉配置文件服务实施:
4.在ReactJS前端访问配置文件用户:
为了在前端获得用户配置文件数据,我使用OidcClient-js
感谢@DaImTo的回复。
mnowg1ta2#
People.get方法会传回包含
您的用户需要使用配置文件范围进行身份验证。
原始http请求
响应
注:您也可以从用户信息端点获得此信息,但谷歌不保证他们会发送索赔每次您提出的要求,所以IMO的最好去通过人民API。
ql3eal8s3#
我尝试了你显示的模式来获得个人资料图片,所以我可以接收人名,但它不能绑定..我指的是@gabrielbarceloscn的答案..