Position actuelle: Accueil> Derniers articles> Construisez un système d'authentification de jeton sécurisé à l'aide de protocoles PHP et OAuth

Construisez un système d'authentification de jeton sécurisé à l'aide de protocoles PHP et OAuth

M66 2025-07-13

introduction

À l'ère de l'Internet d'aujourd'hui, la vérification de l'identité devient de plus en plus importante. De nombreux sites Web et applications doivent s'assurer que seuls les utilisateurs légitimes ont accès à leurs ressources. Pour obtenir une authentification sécurisée, les développeurs utilisent souvent le protocole OAuth.

OAuth est un protocole standard ouvert qui permet aux utilisateurs d'accéder aux ressources d'une application par autorisation sans partager leur nom d'utilisateur et leur mot de passe avec des tiers. Cet article vous apprendra à construire un système d'authentification basé sur des jetons à l'aide de PHP et OAuth.

Installez l'extension PHP OAuth

Tout d'abord, nous devons installer l'extension OAuth pour PHP. Vous pouvez l'installer via le terminal en utilisant la commande suivante:

 <span class="fun">sudo apt-get install php-oauth</span>

Après avoir installé l'extension, nous pouvons commencer à écrire le code.

Postuler pour l'identification du client OAuth et la clé du client

Avant de commencer le codage, nous devons demander un ID client OAuth et une clé client sur les plateformes de développeurs pertinentes (telles que Google, Facebook, Twitter, etc.).

Implémenter le processus d'authentification OAuth

Ensuite, nous rédigerons un script PHP pour implémenter le processus d'authentification OAuth. Créez d'abord un fichier nommé oauth.php et ajoutez le code suivant:

 <?php
// définitionOAuthClientID和Client密钥
$clientId = "YOUR_CLIENT_ID";
$clientSecret = "YOUR_CLIENT_SECRET";

// définitionOAuthRappelURL
$callbackUrl = "http://yourwebsite.com/callback.php";

// initialisationOAuthClient
$oauth = new OAuth($clientId, $clientSecret, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);

// Autorisation de demande
$requestToken = $oauth->getRequestToken("https://api.example.com/oauth/request_token", $callbackUrl);

// Enregistrer les jetons temporaires à la session
$_SESSION['oauth_token'] = $requestToken['oauth_token'];
$_SESSION['oauth_token_secret'] = $requestToken['oauth_token_secret'];

// Générer une autorisationURL
$authorizeUrl = $oauth->getAuthorizeURL($requestToken['oauth_token']);

// Rediriger l&#39;utilisateur vers l&#39;autorisationURL
header("Location: " . $authorizeUrl);
?>

Dans le code ci-dessus, nous définissons l'ID client OAuth, la clé du client et l'URL de rappel. Après cela, le client OAuth est initialisé et le jeton temporaire est obtenu. Ensuite, générez une URL d'autorisation et redirigez l'utilisateur vers cette URL.

Créer un script de traitement de rappel

Ensuite, nous devons créer un fichier appelé callback.php pour gérer le rappel OAuth et obtenir le jeton d'autorisation. Ce qui suit est le code pertinent:

 <?php
// Vérifiez si le jeton temporaire existe
if (!isset($_SESSION['oauth_token']) || !isset($_SESSION['oauth_token_secret'])) {
    die("Temporary token not found.");
}

// Obtenez des jetons temporaires
$oauthToken = $_SESSION['oauth_token'];
$oauthTokenSecret = $_SESSION['oauth_token_secret'];

// initialisationOAuthClient
$oauth = new OAuth($clientId, $clientSecret, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);
$oauth->setToken($oauthToken, $oauthTokenSecret);

// Obtenez un jeton d&#39;autorisation
$accessToken = $oauth->getAccessToken("https://api.example.com/oauth/access_token");

// Imprimez le jeton d&#39;autorisation
var_dump($accessToken);
?>

Dans ce code, nous vérifions d'abord si le jeton temporaire existe. S'il existe, nous utilisons ces jetons pour initialiser l'objet client OAuth, puis obtenez le jeton d'autorisation et imprimez-le.

Résumer

Grâce aux étapes ci-dessus, nous avons réussi à construire un système d'authentification basé sur des jetons en utilisant PHP et OAuth. Ce système peut protéger efficacement la sécurité des données utilisateur tout en simplifiant le processus d'authentification.

Le système peut être personnalisé et élargi en fonction de vos besoins réels. J'espère que cet article vous aidera à atteindre une authentification sécurisée!