Add JWT refreshing

This commit is contained in:
Pig Fang 2019-04-23 12:45:06 +08:00
parent 0486ddc5a1
commit b70004ec0f
3 changed files with 21 additions and 0 deletions

View File

@ -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()]);
}
}

View File

@ -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) {

View File

@ -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));
}
}