Php Angularjs和slim框架JWT身份验证和令牌刷新流
我想知道,到目前为止,我所做的是否是验证/更新令牌的合理方法,以及在我试图将数据库交互限制为零时,是否存在任何缺陷或漏洞。来吧Php Angularjs和slim框架JWT身份验证和令牌刷新流,php,angularjs,authentication,slim,jwt,Php,Angularjs,Authentication,Slim,Jwt,我想知道,到目前为止,我所做的是否是验证/更新令牌的合理方法,以及在我试图将数据库交互限制为零时,是否存在任何缺陷或漏洞。来吧 用户通过普通用户名/密码或Facebook进行身份验证 PHP后端生成一个过期时间为30分钟的令牌,并将其发送到angularjs客户端 JWT令牌存储在$localStorage中 JWT令牌在拦截器的帮助下注入到每个请求头中 所有需要身份验证的Slim路由都会在中间件的帮助下检查发送的令牌 如果令牌无效(过期、被篡改、不适合该特定角色),Slim将以401/403错
赏金授予@Valdas,因为他是唯一一个真正回答的人没有必要循环令牌过期检查。我将其用作Angular项目的库,它提供了一种在触发HTTP请求之前刷新令牌的方法,从而简化了身份验证机制
此外,如果请求加载模板(以.html结尾),您可以从请求中删除令牌,但这只是个人偏好。有一篇关于JWT存储位置的好文章@MikaTuupola谢谢你的提示。我将把令牌存储在cookie中以增加保护。我已经实现了上面提到的反CSRF机制,并查看了您的slim jwt auth中间件。干得好!我推出了自己的非常基本的中间件,但您的中间件肯定是最棒的。我得试试看。cookie/localStorage问题是我的逻辑中唯一的错误吗?谢谢@Valdas,但循环有一个目的:它不会让令牌在浏览器打开时过期,即使没有用户活动或请求。至于AngularJWT库提供的所有便利,我可能会在我的下一个项目中使用它。