我正在使用AngularJS构建SPA,并与Laravel PHP后端进行通信 . Authentication方法使用JWT和tymon / jwt-auth PHP库,在我看来它就像一个很棒的库 .
当用户发送他的用户名/密码时,服务会发送回JWT,JWT存储在客户端的localStorage中 . 这很好用 . 但是,我想使用刷新令牌继续向客户端发出新的JWT,以便在用户使用应用程序时保持用户登录 . 这些刷新令牌应该在哪里发行?它们应该在用户发送用户名/密码时发出吗?如果是这样,在tymon / jwt-auth库中似乎没有办法将刷新令牌发送到客户端 . 请帮助,我在概念化它应该如何工作方面遇到了很多麻烦 .
1 回答
使用OAuth 2.0授权服务器进行身份验证时是否获得刷新令牌取决于您使用的是OAuth grant .
当您的客户端是SPA(不受信任的客户端)时,您可能正在使用隐式授权,并且该授权不支持刷新令牌 .
一些公司已经实现了能够使用隐藏
IFRAME
中的请求刷新授权服务器发出的访问令牌的库 . 我不熟悉您正在使用的库 .有关详细信息,另请参阅this question .