1010trait 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