在发送响应之前,如何将不记名令牌存储在数据库中?
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.Identity
或 context.Identity
在大多数方法中)。然后您可以检查用户身份。
考虑到授权服务器和资源服务器可以分开,资源服务器通常无法访问授权服务器数据库。
我开发了一个 Web API,它使用基于令牌的身份验证(使用 Identity 和 OWIN)。 我需要做的是在使用令牌发出的每个请求中识别用户,以便我可以提供仅属于该用户的数据。 我的想法是在成功验证后立即使用令牌插入/更新该用户记录。 我怎样才能做到这一点? 我的意思是,如何在将响应返回给客户端之前获取令牌? 或者...还有其他方法可以实现吗?
您不需要存储令牌来识别用户。用户身份在令牌中是独立的。
当资源服务器得到请求OAuth2.0中间件(在Microsoft.Owin.Security.OAuth
dll中实现)解密token并设置到Identity
属性(context.Ticket.Identity
或 context.Identity
在大多数方法中)。然后您可以检查用户身份。
考虑到授权服务器和资源服务器可以分开,资源服务器通常无法访问授权服务器数据库。