我已经实现了基于JWT
的身份验证系统,以实现API使用要求之一。这意味着,如果用户想访问任何REST Api
,则将使用JWT令牌传达API。这就是步骤应如下:
- 用户将调用
/Authenticate
方法传递用户名/密码。 - 系统将验证用户并在响应中返回JWT令牌和超时。
- 现在,用户将与请求标头中的JWT令牌一起调用
/Employee/Get
API方法。例如。授权:承载{token} - 事情运作良好。
现在,问题是,一旦生成令牌,任何用户都可以通过捕获网络请求/通过任何可以在网络系统中读取请求/响应的工具来获取令牌。
这意味着,如果我为用户标记生成了JWT token
,那么通过抓住同样的toke,其他一些用户可以在标题中传递相同的令牌,并且可以访问我的/雇员/get API方法。
现在,令牌将被验证,因为它是从同一系统生成的,并且系统不知道用户,它只是知道JWT令牌。
我将如何确保其他用户不能使用相同的令牌,即使他们通过同样的令牌,我的系统也应拒绝该请求。我将如何安全?
预先感谢!
JWT的posession是认证的证明。如果令牌被盗,则攻击者可以模仿用户。因此,您需要保护它:
-
主要使用https 加密通信频道
-
在客户端上安全存储。例如,在这里查看JWT应该存储在localstorage或cookie中吗?