Laravel Development : Comment utiliser Laravel Socialite et Google pour implémenter la connexion tierce ?
Dans les applications Web modernes, la connexion et l'authentification des utilisateurs sont essentielles. La méthode d'authentification traditionnelle basée sur le nom d'utilisateur et le mot de passe ne peut plus répondre à ses exigences de sécurité et de commodité. La connexion tierce résout ce problème en permettant aux utilisateurs de se connecter à votre application en utilisant des comptes qu'ils ont déjà créés sur d'autres plateformes.
Dans cet article, nous présenterons comment implémenter la connexion tierce à l'aide de Laravel Socialite et Google.
Qu'est-ce que Laravel Socialite ?
Laravel Socialite est une bibliothèque d'empaquetage pour le processus d'authentification OAuth qui est largement utilisée dans la communauté Laravel. Il nous permet de nous connecter facilement à plusieurs services tiers tels que Facebook, Twitter, Google, etc.
Paramètres de la plateforme de développement Google
Tout d'abord, nous devons créer l'ID client OAuth dans la plateforme de développement Google. Ouvrez https://console.developers.google.com/ et créez un nouveau projet. Dans le menu déroulant "Sélectionner un projet" dans le coin supérieur gauche, cliquez sur "Nouveau projet".
Remplissez le nom du projet et d'autres informations sur les paramètres du projet. Après avoir créé un projet, vous serez redirigé vers la page de présentation du projet. Dans le menu supérieur, sélectionnez API et services > Informations d'identification.
Cliquez sur le bouton "Créer des informations d'identification" et sélectionnez "ID client OAuth".
Dans le menu déroulant « Type d'application », sélectionnez « Application Web ». Afin d'intégrer Laravel Socialite à Google, nous devons remplir les champs « Source JavaScript autorisée » et « URI de redirection ».
Dans le champ "Sources JavaScript autorisées", saisissez le nom d'hôte de votre application, nous pouvons utiliser l'URL de "http://localhost" localement. Dans le champ "URI de redirection", saisissez une URL de rappel pour rediriger vers votre application après vous être connecté depuis Google. Dans cet exemple, nous utiliserons l'URL « http://localhost:8000/auth/google/callback ».
Après la création, vous recevrez un identifiant client et un secret client. Enregistrez ces informations d'identification, nous les utiliserons plus tard dans Laravel.
Installation et configuration de Laravel Socialite
Laravel Socialite est un package Composer qui peut être utilisé en l'installant à partir de la ligne de commande. Nous utilisons la commande suivante pour l'installer :
composer require laravel/socialite
Une fois l'installation terminée, ajoutez le fournisseur de services Socialite dans le fichier de configuration de Laravel :
'providers' => [ // ... LaravelSocialiteSocialiteServiceProvider::class, ],
Vous devez également ajouter le informations de configuration suivantes dans le fichier de configuration Laravel Medium :
'client_id' => env('GOOGLE_CLIENT_ID'), 'client_secret' => env('GOOGLE_CLIENT_SECRET'), 'redirect' => env('GOOGLE_REDIRECT'),
Ici, nous utilisons le fichier .env
pour enregistrer les informations de configuration requises : .env
文件保存需要的配置信息:
GOOGLE_CLIENT_ID=your-client-id GOOGLE_CLIENT_SECRET=your-client-secret GOOGLE_REDIRECT=http://localhost:8000/auth/google/callback
Laravel Socialite集成
在这里,我们需要创建一个路由处理程序,它将处理与Google的OAuth流程。
Route::get('/auth/google', function () { return Socialite::driver('google')->redirect(); }); Route::get('/auth/google/callback', function () { $user = Socialite::driver('google')->user(); dd($user); });
第一个路由处理程序将重定向用户到Google登录流程。
在成功后,用户将被重定向到第二个路由处理程序中。 此时,我们可以使用user()
$user = Socialite::driver('google')->user(); dd($user);
#🎜 🎜#Ici, nous devons créer un gestionnaire de route qui gérera le flux OAuth avec Google.
Route::get('/auth/google/callback', function () { $user = Socialite::driver('google')->user(); // save application user $authUser = User::where('email', $user->email)->first(); if ($authUser) { Auth::login($authUser, true); return redirect('/home'); } // create application user $newUser = new User; $newUser->name = $user->name; $newUser->email = $user->email; $newUser->password = bcrypt(str_random(16)); $newUser->save(); Auth::login($newUser, true); return redirect('/home'); });
Le premier gestionnaire de route redirigera l'utilisateur vers le flux de connexion Google.
En cas de succès, l'utilisateur sera redirigé vers le deuxième gestionnaire de route. À ce stade, nous pouvons utiliser la méthode user()
pour obtenir les informations de l'utilisateur connecté. Remplissez le code utilisateur renvoyé et imprimez les informations utilisateur que vous avez obtenues :
Vous verrez d'autres données sur l'utilisateur, telles que le nom d'utilisateur, l'adresse e-mail, l'avatar, le jeton, etc. Sur la base de ces informations, nous pouvons mettre en œuvre une connexion tierce.
Ici, nous utiliserons les informations utilisateur obtenues ci-dessus pour créer un utilisateur d'application et nous authentifier.
rrreeeIci, nous commençons par trouver les utilisateurs d'applications existants à l'aide des adresses e-mail renvoyées par Google. S'il est trouvé, connectez-vous à l'aide de l'API d'authentification de Laravel. S'il n'est pas trouvé, créez un nouvel utilisateur et connectez-vous à l'aide de l'API d'authentification de Laravel.
Conclusion
#🎜🎜#Cet article explique comment utiliser Laravel Socialite et Google pour implémenter la connexion tierce. #🎜🎜##🎜🎜# Via les paramètres de Google Dev Platform, nous avons généré les informations d'identification OAuth nécessaires. Ensuite, nous avons utilisé Laravel Socialite pour éliminer les étapes et le code fastidieux du processus OAuth. Enfin, nous authentifions et créons le nouvel utilisateur en utilisant l'adresse e-mail existante de l'utilisateur. #🎜🎜##🎜🎜# Nous espérons que cet article fournit des conseils sur la façon de mettre en œuvre une connexion tierce à l'aide de Laravel Socialite et de Google, ainsi qu'un aperçu du processus OAuth. #🎜🎜#Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!