Bearer 令牌给用户以保护我的API。
Bearer
我的基础设施目前正在使用ASP。NET核心Web API位于后端,独立的React应用程序位于前端。React应用程序对我的API进行HTTP调用以检索其数据。后端根本没有服务器端HTML呈现。
Authorization 标题。我的 AuthorizationController 使用此选项: https://github.com/openiddict/openiddict-samples/blob/dev/samples/PasswordFlow/AuthorizationServer/Controllers/AuthorizationController.cs 进行了一些小调整。我的 Startup.cs 也几乎完全使用了这个 https://github.com/openiddict/openiddict-samples/blob/dev/samples/PasswordFlow/AuthorizationServer/Startup.cs
Authorization
AuthorizationController
Startup.cs
在某些情况下,我需要对特定于用户的端点进行API调用。例如,如果我需要知道用户是否对评论进行了投票。而不是传递给用户 ID 在获取用户详细信息的查询字符串中,我想使用 持票人 我收到的令牌,它们用于为该端点进行API调用。但我不知道该怎么做。
ID
持票人
User 此处显示的变量 https://github.com/openiddict/openiddict-samples/blob/dev/samples/PasswordFlow/AuthorizationServer/Controllers/ResourceController.cs#L20-L31 然而,这似乎不适用于我的基础设施。
User
持票人 传递给API以从我的数据库中查找用户详细信息的令牌?我假设API传递的所有令牌都分配给该特定用户,对吗?如果是这种情况,那么根据 持票人 代币
问题是:如何使用Openiddict根据分配给用户的API调用令牌查找用户?我需要先获得用户详细信息,然后才能对应用程序执行任何其他操作。是否有内部烘焙的东西,或者我必须写我自己的支持?
当您创建 AuthenticationTicket 在您的授权控制器(OpenIddict稍后使用它来生成访问令牌)中,您必须添加一个 sub
AuthenticationTicket
sub
假设您使用用户标识符作为 声明,您可以使用 User.FindFirst(OpenIdConnectConstants.Claims.Subject)?.Value 并使用它进行数据库查找。
User.FindFirst(OpenIdConnectConstants.Claims.Subject)?.Value