Skip to content

Commit 43d525d

Browse files
authored
Upgrade "jwt-auth" package to ^2.2 (#6)
1 parent f57806c commit 43d525d

File tree

5 files changed

+273
-97
lines changed

5 files changed

+273
-97
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
],
1111
"require": {
1212
"php": "^7.4|^8.0",
13-
"php-open-source-saver/jwt-auth": "^1.4"
13+
"php-open-source-saver/jwt-auth": "^2.2"
1414
},
1515
"require-dev": {
1616
"orchestra/testbench": "6.x"

src/AuthenticatesUsers.php

Lines changed: 48 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
trait AuthenticatesUsers
1111
{
1212
/**
13-
* 處理登入請求
13+
* Handle login request.
1414
*
1515
* @param \Illuminate\Http\Request $request
1616
* @return \Illuminate\Http\Response
@@ -27,7 +27,7 @@ public function login(Request $request)
2727
}
2828

2929
/**
30-
* 自 Request 取得驗證所需的欄位
30+
* Get the needed authorization credentials from the request.
3131
*
3232
* @param \Illuminate\Http\Request $request
3333
* @return array
@@ -38,7 +38,7 @@ protected function credentials(Request $request)
3838
}
3939

4040
/**
41-
* 回傳認證守衛
41+
* Get the guard to be used during authentication.
4242
*
4343
* @return \PHPOpenSourceSaver\JWTAuth\JWTGuard
4444
*/
@@ -48,7 +48,8 @@ protected function guard(): JWTGuard
4848
}
4949

5050
/**
51-
* 取得驗證使用者名稱的欄位
51+
* Get the login username to be used by the controller.
52+
*
5253
*
5354
* @return string
5455
*/
@@ -60,8 +61,7 @@ protected function username()
6061
/**
6162
* Get the token array structure.
6263
*
63-
* @param string $token
64-
*
64+
* @param string $token
6565
* @return \Illuminate\Http\JsonResponse
6666
*/
6767
protected function respondWithToken($token)
@@ -74,9 +74,9 @@ protected function respondWithToken($token)
7474
}
7575

7676
/**
77-
* 處理登出請求
77+
* Handle logout request.
7878
*
79-
* @param \Illuminate\Http\Request $request
79+
* @param \Illuminate\Http\Request $request
8080
* @return \Illuminate\Http\Response
8181
*/
8282
public function logout(Request $request)
@@ -87,31 +87,64 @@ public function logout(Request $request)
8787
}
8888

8989
/**
90-
* 刷新 token
90+
* Handle refresh token request.
9191
*
9292
* @return \Illuminate\Http\JsonResponse
9393
*/
9494
public function refresh()
9595
{
9696
try {
97-
return $this->respondWithToken($this->guard()->refresh());
97+
$newToken = $this->guard()->refresh();
98+
return $this->respondWithToken($newToken);
99+
} catch (JWTException $e) {
100+
return $this->respondWithInvalidAccess();
101+
}
102+
}
103+
104+
/**
105+
* Handle reissue token request.
106+
*
107+
*@return \Illuminate\Http\JsonResponse
108+
*/
109+
protected function reissue()
110+
{
111+
$jwtGuard = $this->guard();
112+
113+
try {
114+
$temporaryToken = $jwtGuard->refresh();
115+
116+
$jwtGuard->setToken($temporaryToken);
117+
$payload = $jwtGuard->getPayload();
118+
119+
$newToken = $jwtGuard->tokenById($payload['sub']);
120+
121+
return $this->respondWithToken($newToken);
98122
} catch (JWTException $e) {
99-
return response()->json(['error' => 'Invalid Access Token'], 401);
123+
return $this->respondWithInvalidAccess();
100124
}
101125
}
102126

103127
/**
104-
* 回傳當前使用者資訊
128+
* @param string|null $message
129+
* @return \Illuminate\Http\JsonResponse
130+
*/
131+
private function respondWithInvalidAccess(string $message = 'Invalid Access Token')
132+
{
133+
return response()->json(['error' => $message], 401);
134+
}
135+
136+
/**
137+
* Handle get user info request.
105138
*
106139
* @param \Illuminate\Http\Request $request
107-
* @return \Illuminate\Http\Response 回傳使用者資訊
140+
* @return \Illuminate\Http\Response
108141
*/
109142
public function me(Request $request)
110143
{
111144
if ($this->guard()->check()) {
112145
return response()->json($this->guard()->user());
113-
} else {
114-
return response()->json(['error' => 'Invalid Access Token'], 401);
115146
}
147+
148+
return $this->respondWithInvalidAccess();
116149
}
117150
}

0 commit comments

Comments
 (0)