From b70004ec0f8fc3c6438d816c0f33dc63eeff7d27 Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Tue, 23 Apr 2019 12:45:06 +0800 Subject: [PATCH] Add JWT refreshing --- app/Http/Controllers/AuthController.php | 5 +++++ routes/api.php | 1 + tests/AuthControllerTest.php | 15 +++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 58fb7823..a201da38 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -267,4 +267,9 @@ class AuthController extends Controller Auth::guard('api')->logout(); return response('', 204); } + + public function apiRefresh() + { + return json(['token' => Auth::guard('api')->refresh()]); + } } diff --git a/routes/api.php b/routes/api.php index 81d307f7..e942c26a 100644 --- a/routes/api.php +++ b/routes/api.php @@ -3,6 +3,7 @@ Route::prefix('auth')->group(function ($route) { $route->post('login', 'AuthController@apiLogin'); $route->post('logout', 'AuthController@apiLogout')->middleware('auth.jwt'); + $route->post('refresh', 'AuthController@apiRefresh')->middleware('auth.jwt'); }); Route::prefix('user')->middleware('auth.jwt')->group(function ($route) { diff --git a/tests/AuthControllerTest.php b/tests/AuthControllerTest.php index 8cfe445b..26e5dfc1 100644 --- a/tests/AuthControllerTest.php +++ b/tests/AuthControllerTest.php @@ -552,4 +552,19 @@ class AuthControllerTest extends TestCase 'Authorization' => "Bearer $token" ])->assertStatus(204); } + + public function testApiRefresh() + { + $user = factory(User::class)->create(); + $user->changePassword('12345678'); + $token = $this->postJson('/api/auth/login', [ + 'email' => $user->email, + 'password' => '12345678' + ])->decodeResponseJson('token'); + + $token = $this->postJson('/api/auth/refresh', [], [ + 'Authorization' => "Bearer $token" + ])->decodeResponseJson('token'); + $this->assertTrue(is_string($token)); + } }