我的网站由多个部分组成(API,IdSrv,MVC等)。
IdSvr站点处理授权并发出访问权限和ID令牌并处理用户管理。 API站点存储与用户无关的信息(因此不存储在IdSvr站点上)。
IdSvr站点显示从API(和其他站点)提取的用户信息。为此,我需要通过访问令牌授权用户使用API。要检索该访问令牌,IdSvr站点需要针对IdSrv站点发出http请求,然后使用令牌调用API站点以获取实际数据。 这对我来说似乎很奇怪,我正在寻找一种获取访问令牌的方法,而不需要IdSvr站点对自己提出请求。
我已经尝试了var accessToken = await HttpContext.GetTokenAsync("access_token");
,因为它显示在Identity Server示例中,但是这会返回一个空的访问令牌。
日志并不多见,除了:
[15:22:28信息] Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler AuthenticationScheme:Identity.Application已成功通过身份验证。
答案 0 :(得分:0)
好的,在评论中提供的澄清后更新了答案。
我认为您发现这个棘手的原因是您要求您的ID服务器返回与身份验证无关的详细信息。从您的客户端看来,这应该是两个电话:
对ID服务器进行授权。
使用该访问令牌,从该站点而不是ID服务器请求用户详细信息(特定于我尝试访问的站点)。