try catch handle refresh token fail to login again
This commit is contained in:
@@ -115,10 +115,15 @@ class ServiceTabPbgTask
|
|||||||
} catch (\GuzzleHttp\Exception\ClientException $e) {
|
} catch (\GuzzleHttp\Exception\ClientException $e) {
|
||||||
if ($e->getCode() === 401 && !$retriedAfter401) {
|
if ($e->getCode() === 401 && !$retriedAfter401) {
|
||||||
Log::warning("401 Unauthorized - Refreshing token and retrying...");
|
Log::warning("401 Unauthorized - Refreshing token and retrying...");
|
||||||
$this->refreshToken();
|
try{
|
||||||
$options['headers']['Authorization'] = "Bearer {$this->user_token}";
|
$this->refreshToken();
|
||||||
$retriedAfter401 = true;
|
$options['headers']['Authorization'] = "Bearer {$this->user_token}";
|
||||||
continue; // Retry with new token
|
$retriedAfter401 = true;
|
||||||
|
continue;
|
||||||
|
}catch(\Exception $refreshError){
|
||||||
|
Log::error("Token refresh and login failed: " . $refreshError->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw $e;
|
throw $e;
|
||||||
@@ -221,10 +226,15 @@ class ServiceTabPbgTask
|
|||||||
} catch (\GuzzleHttp\Exception\ClientException $e) {
|
} catch (\GuzzleHttp\Exception\ClientException $e) {
|
||||||
if ($e->getCode() === 401 && !$retriedAfter401) {
|
if ($e->getCode() === 401 && !$retriedAfter401) {
|
||||||
Log::warning("401 Unauthorized - Refreshing token and retrying...");
|
Log::warning("401 Unauthorized - Refreshing token and retrying...");
|
||||||
$this->refreshToken();
|
try{
|
||||||
$options['headers']['Authorization'] = "Bearer {$this->user_token}";
|
$this->refreshToken();
|
||||||
$retriedAfter401 = true;
|
$options['headers']['Authorization'] = "Bearer {$this->user_token}";
|
||||||
continue;
|
$retriedAfter401 = true;
|
||||||
|
continue;
|
||||||
|
}catch(\Exception $refreshError){
|
||||||
|
Log::error("Token refresh and login failed: " . $refreshError->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -295,10 +305,15 @@ class ServiceTabPbgTask
|
|||||||
} catch (\GuzzleHttp\Exception\ClientException $e) {
|
} catch (\GuzzleHttp\Exception\ClientException $e) {
|
||||||
if ($e->getCode() === 401 && !$retriedAfter401) {
|
if ($e->getCode() === 401 && !$retriedAfter401) {
|
||||||
Log::warning("401 Unauthorized - Refreshing token and retrying...");
|
Log::warning("401 Unauthorized - Refreshing token and retrying...");
|
||||||
$this->refreshToken();
|
try{
|
||||||
$options['headers']['Authorization'] = "Bearer {$this->user_token}";
|
$this->refreshToken();
|
||||||
$retriedAfter401 = true;
|
$options['headers']['Authorization'] = "Bearer {$this->user_token}";
|
||||||
continue;
|
$retriedAfter401 = true;
|
||||||
|
continue;
|
||||||
|
}catch(\Exception $refreshError){
|
||||||
|
Log::error("Token refresh and login failed: " . $refreshError->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -330,22 +345,35 @@ class ServiceTabPbgTask
|
|||||||
private function refreshToken()
|
private function refreshToken()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$newAuthToken = $this->service_token->refresh_token($this->user_refresh_token);
|
$newAuthToken = $this->service_token->refresh_token($this->user_refresh_token);
|
||||||
|
|
||||||
|
if (!isset($newAuthToken['access']) || !isset($newAuthToken['refresh'])) {
|
||||||
|
throw new \Exception("Invalid refresh token response.");
|
||||||
|
}
|
||||||
|
|
||||||
$this->user_token = $newAuthToken['access'];
|
$this->user_token = $newAuthToken['access'];
|
||||||
$this->user_refresh_token = $newAuthToken['refresh'];
|
$this->user_refresh_token = $newAuthToken['refresh'];
|
||||||
|
|
||||||
if (!$this->user_token) {
|
|
||||||
Log::error("Token refresh failed: No token received.");
|
|
||||||
throw new \Exception("Failed to refresh token.");
|
|
||||||
}
|
|
||||||
|
|
||||||
Log::info("Token refreshed successfully.");
|
Log::info("Token refreshed successfully.");
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Log::error("Token refresh error: " . $e->getMessage());
|
Log::error("Token refresh failed: " . $e->getMessage());
|
||||||
throw new \Exception("Token refresh failed.");
|
Log::info("Attempting to log in again...");
|
||||||
|
|
||||||
|
try {
|
||||||
|
$loginAgain = $this->service_token->get_token(); // Login again
|
||||||
|
|
||||||
|
if (!isset($loginAgain['access']) || !isset($loginAgain['refresh'])) {
|
||||||
|
throw new \Exception("Invalid login response.");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->user_token = $loginAgain['access'];
|
||||||
|
$this->user_refresh_token = $loginAgain['refresh'];
|
||||||
|
|
||||||
|
Log::info("Re-login successful.");
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Log::error("Re-login failed: " . $e->getMessage());
|
||||||
|
throw new \Exception("Both token refresh and login failed.". $e->getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user