语境:
我已经在我的应用程序中实现了 OpenIddict,基于GitHub 自述文件。我目前使用 TokenEndpoint 来登录用户。
services.AddOpenIddict<ApplicationUser, UsersDbContext>().EnableTokenEndpoint("/api/Account/Login")
尽管调用/api/Account/Info有效并且它返回令牌作为响应,但我需要获取一些有关登录用户的基本数据(用户名、电子邮件、帐户类型)。来自令牌端点的响应没有提供。
我发现了类似 UserinfoEndpoint 的东西:
.EnableUserinfoEndpoint("/api/Account/Info")
但是我在http响应中看到的是:
{
"sub": "ea2248b4-a[...]70757de60fd",
"iss": "http://localhost:59381/"
}
这应该给我一些回报Claims。由于它不返回任何内容,我假设Identity Claims在令牌生成期间没有创建任何内容。
简而言之,我需要知道的:
- 是否使用令牌端点正确的方式登录用户?
- 我需要自己生成索赔吗?
- 我可以自己控制索赔吗?如何控制?
- 如何通过 UserInfoEndpoint 使某些声明可见?