在发送响应之前,如何将不记名令牌存储在数据库中?

How can I store the bearer token in Database before sending in the response?

我开发了一个 Web API,它使用基于令牌的身份验证(使用 Identity 和 OWIN)。 我需要做的是在使用令牌发出的每个请求中识别用户,以便我可以提供仅属于该用户的数据。 我的想法是在成功验证后立即使用令牌插入/更新该用户记录。 我怎样才能做到这一点? 我的意思是,如何在将响应返回给客户端之前获取令牌? 或者...还有其他方法可以实现吗?

您不需要存储令牌来识别用户。用户身份在令牌中是独立的。

当资源服务器得到请求OAuth2.0中间件(在Microsoft.Owin.Security.OAuth dll中实现)解密token并设置到Identity 属性(context.Ticket.Identitycontext.Identity 在大多数方法中)。然后您可以检查用户身份。

考虑到授权服务器和资源服务器可以分开,资源服务器通常无法访问授权服务器数据库。