如何在发送响应之前将承载令牌存储在数据库中?

时间:2016-07-15 04:48:43

标签: c# asp.net authentication token owin

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

1 个答案:

答案 0 :(得分:1)

您无需存储令牌来识别用户。用户标识在令牌中是自包含的。

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

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