@@ -121,7 +121,8 @@ public static function refreshToken(): array
121121 }
122122 if ($ config ['is_single_device ' ]) {
123123 $ client = $ extend ['extend ' ]['client ' ] ?? self ::TOKEN_CLIENT_WEB ;
124- RedisHandler::generateToken ($ config ['cache_token_pre ' ], (string )$ client , (string )$ extend ['extend ' ]['id ' ], $ extend ['exp ' ], $ newToken ['access_token ' ]);
124+ RedisHandler::generateToken ($ config ['cache_token_pre ' ], (string )$ client , (string )$ extend ['extend ' ]['id ' ], $ config ['access_exp ' ], $ newToken ['access_token ' ]);
125+ RedisHandler::refreshToken ($ config ["cache_refresh_token_pre " ], (string )$ client , (string )$ extend ['extend ' ]['id ' ], $ config ['refresh_exp ' ], $ newToken ['refresh_token ' ]);
125126 }
126127 return $ newToken ;
127128 }
@@ -154,6 +155,7 @@ public static function generateToken(array $extend): array
154155 if ($ config ['is_single_device ' ]) {
155156 $ client = $ extend ['client ' ] ?? self ::TOKEN_CLIENT_WEB ;
156157 RedisHandler::generateToken ($ config ['cache_token_pre ' ], (string )$ client , (string )$ extend ['id ' ], $ config ['access_exp ' ], $ token ['access_token ' ]);
158+ RedisHandler::generateToken ($ config ["cache_refresh_token_pre " ], (string )$ client , (string )$ extend ['id ' ], $ config ['refresh_exp ' ], $ token ['refresh_token ' ]);
157159 }
158160 return $ token ;
159161 }
@@ -250,9 +252,13 @@ private static function verifyToken(string $token, int $tokenType): array
250252
251253 $ decoded = JWT ::decode ($ token , new Key ($ publicKey , $ config ['algorithms ' ]));
252254 $ decodeToken = json_decode (json_encode ($ decoded ), true );
253- if ($ config ['is_single_device ' ] && self ::ACCESS_TOKEN == $ tokenType ) {
255+ if ($ config ['is_single_device ' ]) {
256+ $ cacheTokenPre = $ config ['cache_token_pre ' ];
257+ if ($ tokenType == self ::REFRESH_TOKEN ) {
258+ $ cacheTokenPre = $ config ['cache_refresh_token_pre ' ];
259+ }
254260 $ client = $ decodeToken ['extend ' ]['client ' ] ?? self ::TOKEN_CLIENT_WEB ;
255- RedisHandler::verifyToken ($ config [ ' cache_token_pre ' ] , $ client , (string )$ decodeToken ['extend ' ]['id ' ], $ token );
261+ RedisHandler::verifyToken ($ cacheTokenPre , $ client , (string )$ decodeToken ['extend ' ]['id ' ], $ token );
256262 }
257263 return $ decodeToken ;
258264 }
@@ -365,7 +371,9 @@ public static function clear(string $client = self::TOKEN_CLIENT_WEB): bool
365371 {
366372 $ config = self ::_getConfig ();
367373 if ($ config ['is_single_device ' ]) {
368- return RedisHandler::clearToken ($ config ['cache_token_pre ' ], $ client , (string )self ::getCurrentId ());
374+ $ clearCacheRefreshTokenPre = RedisHandler::clearToken ($ config ['cache_refresh_token_pre ' ], $ client , (string )self ::getCurrentId ());
375+ $ clearCacheTokenPre = RedisHandler::clearToken ($ config ['cache_token_pre ' ], $ client , (string )self ::getCurrentId ());
376+ return $ clearCacheTokenPre && $ clearCacheRefreshTokenPre ;
369377 }
370378 return true ;
371379 }
0 commit comments