【问题标题】:Angular - refresh jwt tokenAngular - 刷新 jwt 令牌
【发布时间】:2016-10-14 08:51:25
【问题描述】:

我在 Laravel 中有一个后端,并在 Ionic 中制作了一个应用程序。我在前端使用satellizer,在laravel 端使用this package 进行JWT 身份验证。由于在用户注销之前我需要为用户提供令牌,因此我需要一种以某种方式刷新其令牌的方法。我不知道该怎么做,最好让所有路由都请求身份验证令牌并发送 401 响应(如果不存在),然后进行令牌刷新,或者在前端用计时器刷新令牌以及如何实际做到这一点?

这是我的路线文件:

Route::group(['jwt.auth', ['except' => ['authenticate']], 'prefix' => 'api', 'namespace' => 'Api'], function() {
  Route::post('authenticate', 'AuthenticateController@authenticate');
  Route::get('user', 'AuthenticateController@getAuthenticatedUser');
  Route::get('comment', 'AuthenticateController@comment');
  Route::get('articles/latest', 'ArticlesController@latest');
  Route::get('articles/by-score', 'ArticlesController@byScore');
  Route::get('article/{id}', 'ArticlesController@show');
  Route::get('comments', 'CommentsController@index');
  Route::get('comments/{id}', 'CommentsController@show');
  Route::post('comments/create', 'CommentsController@store');
  Route::put('comments/update', 'CommentsController@update');
  Route::delete('comments/delete', 'CommentsController@destroy');
  Route::post('article/upvote', 'VotesController@upvote');
  Route::delete('article/upvote/delete', 'VotesController@destroyUpVote');
  Route::post('article/challenge/vote', 'VotesController@challengeVote');
  Route::delete('article/challenge/vote/delete', 'VotesController@destroyChallengeVote');
});

【问题讨论】:

    标签: angularjs laravel jwt


    【解决方案1】:

    我过去所做的是对每个请求进行授权,然后当数据库中的令牌在一定时间内到期时创建一个新令牌。对我来说,如果用户在过去 15 分钟内仍处于活动状态,则会刷新 1 小时令牌。然后,如果令牌被刷新,则在 Laravel 中设置新令牌并使旧令牌无效。或者您可以延长数据库中的刷新时间。我的建议是在最初创建令牌时设置一些 expire_time 。如果令牌过期,则返回 401。

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 2017-10-11
      • 2020-08-25
      • 2016-03-05
      • 2016-06-25
      • 2021-01-19
      • 1970-01-01
      • 2017-12-31
      • 2017-12-26
      相关资源
      最近更新 更多