1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <?php
session_start();
require_once 'vendor/autoload.php';
use League\OAuth2\Client\Provider\GenericProvider;
$provider = new GenericProvider([
'clientId' => 'mondrupal_client_id',
'clientSecret' => 'mondrupal_client_secret',
'redirectUri' => 'http://pasdrupal.net/callback.php',
'urlAuthorize' => 'https://mondrupal.org/oauth/authorize',
'urlAccessToken' => 'https://mondrupal.org/oauth/token',
'urlResourceOwnerDetails' => 'https://mondrupal.org/user',
'scopes' => 'mon_scope',
]);
// Vérifiez si le paramètre 'code' est présent dans l'URL
if (!isset($_GET['code'])) {
exit('Erreur d\'authentification : code non fourni.');
}
try {
// Récupérez le jeton d'accès en échangeant le code d'autorisation
$accessToken = $provider->getAccessToken('authorization_code', [
'code' => $_GET['code']
]);
// Stockez le jeton d'accès dans la session
$_SESSION['access_token'] = $accessToken;
// Vérifiez si le paramètre 'redirect' est présent dans l'URL
$redirect = isset($_GET['redirect']) ? $_GET['redirect'] : 'default-page.php';
// Redirigez vers la page de redirection dynamique après la récupération du jeton d'accès
header('Location: http://pasdrupal.net/' . $redirect);
exit();
} catch (\Exception $e) {
// Gérez les exceptions et affichez un message d'erreur approprié
echo "Erreur d'authentification : " . $e->getMessage();
exit();
}
?> |
Partager