ASP.Net Web Api 2,json web令牌,注销并确保服务器不再需要验证令牌

Lal*_*ali 8 security token jwt asp.net-web-api

我正在使用asp.net web api 2并使用JWT进行身份验证.应用程序正常工作,因为它在用户登录请求时生成令牌,然后用户可以使用该令牌进行后续请求.但我有一些安全问题,比如

  1. 如果令牌从用户的浏览器中被盗,该怎么办?服务器如何检测从两台不同计算机发送的两个请求中的有效请求.
  2. 当用户注销时,服务器如何检测到此特定令牌现在无效/已注销.当我读到退出时,它只是从客户端浏览器删除令牌,因此被盗令牌仍然存在,从其他PC请求.
  3. 服务器在到期时间内如何撤销令牌?

如果我的问题不明确,请评论.

Tai*_*deh 6

请找到以下答案:

1)访问令牌,如现金,如果你有它,那么你可以使用它,如果你有有效的访问令牌,则无法识别请求是否来自授权方,这就是为什么HTTPS必须与OAuth 2.0和bearer一起使用令牌。

2)像 JWT 这样的自包含令牌是不可撤销的,所以没有数据库检查,这就是它的美妙之处,你需要保留这些令牌直到它们过期。如果您使用了参考令牌,那么您将能够撤销它们,但这种方法的缺点是每次 API 调用都会访问数据库以验证令牌。

3) 已经在第 2 部分回答。

您可以使用以下链接查看我关于此主题的系列帖子:

使用 ASP.NET Web API 2、Owin 和 Identity 的基于令牌的身份验证。

使用 ASP.NET Web API 2 的 AngularJS 令牌身份验证。

使用 Owin 的 ASP.NET Web API 2 中的 JSON Web 令牌。

  • 感谢您的回答。但是你错过了第二个问题,令牌有没有办法向服务器询问“我现在要注销,所以拒绝我的任何其他请求”? (2认同)