Angularjs和slim框架JWT身份验证和令牌刷新流

时间:2015-08-23 06:07:56

标签: php angularjs authentication slim jwt

我想知道我到目前为止所做的事情是否是验证/更新令牌的合理方式,如果我试图将数据库交互限制为零,我应该注意哪些漏洞或漏洞。到此为止。

  1. 用户通过普通用户名/密码或Facebook
  2. 进行身份验证
  3. PHP后端生成一个标记,其到期时间为30分钟,并将其发送到angularjs客户端
  4. JWT令牌存储在$ localStorage
  5. 在每个请求标头
  6. 中,在拦截器的帮助下注入JWT令牌
  7. 需要身份验证的所有Slim路由都借助中间件检查发送的令牌。
  8. 如果令牌无效(已过期,已被篡改,不适合该特定角色),Slim将回复401/403错误。
  9. 如果令牌即将到期,则角度服务会每分钟检查
  10. 如果令牌即将到期(剩下5到1分钟),服务会将旧令牌发布到另一个API端点。
  11. API端点检查令牌的有效性,并使用新的响应时间为+30分钟进行响应。
  12. 我之前提到的民意调查服务取代了$ localStorage中的旧令牌。
  13. 冲洗并重复。
  14. 注意:SSL将在生产中实施

    赏金奖给了@Valdas,因为他是唯一真正回答的人

1 个答案:

答案 0 :(得分:4)

无需循环令牌过期检查。我使用https://github.com/auth0/angular-jwt作为我的Angular项目的库,它提供了一种在HTTP请求被触发之前刷新令牌的方法,简化了auth机制。

此外,如果加载模板(以.html结尾),您可以从请求中删除令牌,但这只是个人偏好。