【问题标题】:How can I store the bearer token in Database before sending in the response?在发送响应之前,如何将不记名令牌存储在数据库中?
【发布时间】:2016-07-15 04:48:43
【问题描述】:

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

【问题讨论】:

  • 幸运的是我之前偶然发现了一篇不错的文章,花点时间阅读它bitoftech.net/2014/06/01/…
  • 这正是实现我的 Web API 所遵循的文章。它没有回答我的问题

标签: c# asp.net authentication token owin


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 2017-12-25
    • 2018-11-12
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    相关资源
    最近更新 更多