我想知道我到目前为止所做的是一种验证/更新令牌的合理方式,如果我试图将数据库交互限制为零,我应该注意哪些漏洞或漏洞 . 开始 .
-
用户通过普通用户名/密码或Facebook进行身份验证
-
PHP后端生成一个到期时间为30分钟的令牌,并将其发送到angularjs客户端
-
JWT令牌存储在$ localStorage中
-
JWT令牌在拦截器的帮助下在每个请求头中注入
-
需要身份验证的所有Slim路由都借助中间件检查发送的令牌 .
-
如果令牌无效(已过期,已被篡改,不适合该特定角色),Slim将以401/403错误响应 .
-
如果令牌即将过期,角度服务会每分钟检查一次
-
如果令牌即将到期(剩下5到1分钟),服务会将旧令牌发布到另一个API endpoints .
-
API endpoints 检查令牌的有效性,并以新的时间30分钟响应 .
-
我之前提到的轮询服务取代了$ localStorage中的旧令牌 .
-
冲洗并重复 .
注意:SSL将在 生产环境 中实施
Bounty awarded to @Valdas as he was the only one who actually answered
1 回答
无需循环令牌过期检查 . 我使用https://github.com/auth0/angular-jwt作为我的Angular项目的库,它提供了一种在HTTP请求被触发之前刷新令牌的方法,简化了auth机制 .
此外,如果加载模板(以.html结尾),您可以从请求中删除令牌,但这只是个人偏好 .