And*_*zo1 5 security jwt reactjs redux
最近我需要构建一个简单的 REST API,我阅读了关于最佳实践的不同文章,以尽可能减少我的 Web 应用程序的漏洞。在网上搜索,我找到了关于如何实现 JWT 令牌的不同教程,每个教程在某些方面都不同,我找不到一种节流良好的“通用方法”。最后,我实现了对我来说似乎最合理的解决方案,但我想确认这是处理此类身份验证的最有效方法。
在开始之前:
#STEP 1:认证后生成令牌:
#STEP 2:授权请求
为了授权请求,我只使用在请求标头中的字段中发送的访问令牌。仅当令牌有效时才允许请求。
#STEP 3:刷新访问令牌
为了刷新令牌,我向服务器发送刷新请求。服务器:
有关刷新过程的更多信息
刷新被称为:
进一步的预防措施:关键操作
刷新令牌有两个过期时间。第一个,对于非关键操作,每次发布新令牌时都会刷新。这样,如果用户继续使用该应用程序,他/她可能会永远保持登录状态。对于关键操作,第二个(持续 3 小时)是“绝对的”。这意味着,在每次刷新时,关键操作的“计时器”不会刷新。
//To make it simpler:
nextToken.criticalExpiration=previousToken.criticalExpiration
Run Code Online (Sandbox Code Playgroud)
在“关键”计时器到期后调用刷新请求时,生成的访问令牌有一个字段为 false,表示执行关键操作的选项。如果为 false,则不允许进行关键操作(因此用户必须重新进行身份验证才能执行这些请求)
概括:
我想了解此过程是否正确执行或是否会产生漏洞。我知道在应用程序的其他部分和/或外部库中总是可能存在漏洞,但是,我想尽量减少留下可以被利用的东西的可能性。
您必须创建控制器、用于登录的中间件、生成 jwt 令牌以及刷新令牌。有关更多详细信息,请参阅:https://stackabuse.com/authentication-and-authorization-with-jwts-in-express-js/ 。
| 归档时间: |
|
| 查看次数: |
212 次 |
| 最近记录: |