首页 文章

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

提问于
浏览
10

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

  • 用户通过普通用户名/密码或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 回答

  • 4

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

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

相关问题