[Web] handle fatal errors on getAccessToken

This commit is contained in:
FreddleSpl0it 2023-05-25 12:32:47 +02:00
parent 6aac996861
commit 956dae8927
No known key found for this signature in database
GPG Key ID: 00E14E7634F4BEC5
1 changed files with 3 additions and 19 deletions

View File

@ -1974,6 +1974,9 @@ function identity_provider($_action, $_data = null, $_extra = null) {
$pdo->rollback(); $pdo->rollback();
return false; return false;
} }
if ($setting == "server_url" || $setting == "authorize_url" || $setting == "token_url" || $setting == "userinfo_url") {
$_data[$setting] = rtrim($_data[$setting], '/');
}
$stmt->bindParam(':key', $setting); $stmt->bindParam(':key', $setting);
$stmt->bindParam(':value', $_data[$setting]); $stmt->bindParam(':value', $_data[$setting]);
@ -2101,15 +2104,6 @@ function identity_provider($_action, $_data = null, $_extra = null) {
try { try {
$token = $provider->getAccessToken('authorization_code', ['code' => $_GET['code']]); $token = $provider->getAccessToken('authorization_code', ['code' => $_GET['code']]);
} catch (Exception $e) {
$_SESSION['return'][] = array(
'type' => 'danger',
'log' => array(__FUNCTION__),
'msg' => array('login_failed', $e->getMessage())
);
return false;
}
try {
$_SESSION['iam_token'] = $token->getToken(); $_SESSION['iam_token'] = $token->getToken();
$_SESSION['iam_refresh_token'] = $token->getRefreshToken(); $_SESSION['iam_refresh_token'] = $token->getRefreshToken();
$info = $provider->getResourceOwner($token)->toArray(); $info = $provider->getResourceOwner($token)->toArray();
@ -2121,7 +2115,6 @@ function identity_provider($_action, $_data = null, $_extra = null) {
); );
return false; return false;
} }
// check if email address is given // check if email address is given
if (empty($info['email'])) return false; if (empty($info['email'])) return false;
@ -2204,15 +2197,6 @@ function identity_provider($_action, $_data = null, $_extra = null) {
try { try {
$token = $provider->getAccessToken('refresh_token', ['refresh_token' => $_SESSION['iam_refresh_token']]); $token = $provider->getAccessToken('refresh_token', ['refresh_token' => $_SESSION['iam_refresh_token']]);
} catch (Exception $e) {
$_SESSION['return'][] = array(
'type' => 'danger',
'log' => array(__FUNCTION__),
'msg' => array('login_failed', $e->getMessage())
);
return false;
}
try {
$_SESSION['iam_token'] = $token->getToken(); $_SESSION['iam_token'] = $token->getToken();
$_SESSION['iam_refresh_token'] = $token->getRefreshToken(); $_SESSION['iam_refresh_token'] = $token->getRefreshToken();
$info = $provider->getResourceOwner($token)->toArray(); $info = $provider->getResourceOwner($token)->toArray();