Maison >cadre php >Laravel >Développement Laravel : Comment implémenter la connexion tierce à l'aide de Laravel Socialite et Github ?

Développement Laravel : Comment implémenter la connexion tierce à l'aide de Laravel Socialite et Github ?

PHPz
PHPzoriginal
2023-06-13 19:09:00893parcourir

Dans les applications Web modernes, il est devenu une tendance de permettre aux utilisateurs de se connecter rapidement et facilement à votre site Web à l'aide de leurs comptes de réseaux sociaux. Bien qu'il soit possible de mettre en œuvre votre propre système d'authentification, l'utilisation d'un système d'authentification tiers rend votre application plus flexible et plus facile à utiliser.

Dans cet article, nous explorerons comment implémenter la connexion tierce à l'aide de Laravel Socialite et Github. Laravel Socialite est une extension Laravel qui facilite l'intégration de l'authentification des réseaux sociaux dans votre application Laravel. Github est un service d'hébergement de référentiel Git populaire qui fournit également des services d'authentification tiers.

Avant de commencer, assurez-vous que Laravel et Composer sont installés.

  1. Installer Laravel Socialite

Tout d'abord, nous devons installer Laravel Socialite. Exécutez la commande suivante dans le terminal :

composer require laravel/socialite

Cette commande téléchargera et installera le plugin Laravel Socialite.

  1. Créer une application Github

Avant de nous connecter avec Github, nous devons d'abord créer une application Github afin de pouvoir utiliser le service d'authentification tiers de Github.

Visitez ce lien et connectez-vous à votre compte Github : https://github.com/settings/developers

Ensuite, cliquez sur le bouton "Nouvelle application OAuth" et remplissez le formulaire. Entrez l'URL de votre page d'accueil dans URL de la page d'accueil et l'URL de rappel dans URL de rappel d'autorisation. Le but de cette étape est de connecter votre application à Github.

  1. Configuration de Laravel Socialite

Ensuite, nous devons configurer Laravel Socialite afin qu'il puisse communiquer avec l'application Github que nous venons de créer.

3.1 Ajouter un pilote Github

Ouvrez le fichier config/services.php et ajoutez la configuration suivante : config/services.php 文件并添加以下配置:

'github' => [    
   'client_id' => env('GITHUB_CLIENT_ID'),    
   'client_secret' => env('GITHUB_CLIENT_SECRET'),    
   'redirect' => 'http://your-domain.com/auth/github/callback',    
],

这将创建一个名为“github”的驱动程序,并配置客户端 ID、客户端密钥和回调 URL。请替换“your-domain.com”为您的主页 URL。

3.2 更新 .env 文件

打开 .env 文件并添加以下配置:

GITHUB_CLIENT_ID=your-client-id    
GITHUB_CLIENT_SECRET=your-client-secret    
GITHUB_REDIRECT_URI=http://your-domain.com/auth/github/callback

请替换 your-client-idyour-client-secretyour-domain.com 为您的 Github App 的客户端 ID、客户端密钥和主页 URL。

  1. 创建 Github 登录路由和控制器

现在,我们可以开始实现我们的 Github 登录了。首先,我们需要创建一个 Github 登录路由:

Route::get('auth/github', '[GithubController@login');
Route::get('auth/github/callback', '[GithubController@callback']);

然后,我们需要创建 GithubController 控制器类,并在其中实现 logincallback 方法:

namespace AppHttpControllers;

use IlluminateHttpRequest;
use LaravelSocialiteFacadesSocialite;

class GithubController extends Controller
{
    public function login()
    {
        return Socialite::driver('github')->redirect();
    }

    public function callback(Request $request)
    {
        $user = Socialite::driver('github')->user();
        
        // do something with user data
    }
}

login 方法中,我们使用 Socialite facade 调用 driver 方法指定使用 Github 驱动程序,并使用 redirect 方法生成一个跳转到 Github 登录页面的 URL。

callback 方法中,我们先使用 Socialite facade 调用 driver 方法获取 Github 用户信息,然后可以进行一些逻辑处理。例如,如果该用户是首次登录,可以将用户添加到用户表中,或者将其与已有用户进行关联。

5.测试 Github 登录

现在,我们已经完成了所有的配置和代码,可以测试我们的 Github 登录是否正常工作了。

在浏览器中输入该地址:http://your-domain.com/auth/github。这将转到 Github 登录页面。在页面上输入您的 Github 帐户信息,然后单击“登录”。如果一切正常,您将被重定向到我们在第 3 步中配置的回调 URL。

callback

return view('welcome');

Cela créera un pilote nommé "github" et configurera l'ID client, le secret client et URL de rappel. Veuillez remplacer « votre-domaine.com » par l'URL de votre page d'accueil.

3.2 Mettre à jour le fichier .env

Ouvrez le fichier .env et ajoutez la configuration suivante :

rrreee

Veuillez remplacer votre-identifiant-client, votre- client-secret et your-domain.com sont l'ID client, le secret client et l'URL de la page d'accueil de votre application Github.

    Créez la route et le contrôleur de connexion Github🎜🎜🎜Maintenant, nous pouvons commencer à implémenter notre connexion Github. Tout d'abord, nous devons créer une route de connexion Github : 🎜rrreee🎜Ensuite, nous devons créer la classe de contrôleur GithubController et implémenter login et callback Méthode : 🎜rrreee🎜Dans la méthode login, nous utilisons la façade Socialite pour appeler la méthode driver pour spécifier le pilote Github et utiliser La méthode redirect génère une URL qui renvoie vers la page de connexion Github. 🎜🎜Dans la méthode callback, nous utilisons d'abord la façade Socialite pour appeler la méthode driver pour obtenir les informations utilisateur de Github, puis effectuons quelques traitement logique. Par exemple, si l'utilisateur se connecte pour la première fois, vous pouvez l'ajouter à la table des utilisateurs ou l'associer à un utilisateur existant. 🎜🎜5. Testez la connexion à Github🎜🎜Maintenant que nous avons terminé toute la configuration et le code, nous pouvons tester si notre connexion à Github fonctionne correctement. 🎜🎜Entrez cette adresse dans votre navigateur : http://votre-domaine.com/auth/github. Cela vous mènera à la page de connexion de Github. Entrez les informations de votre compte Github sur la page et cliquez sur Se connecter. Si tout va bien, vous serez redirigé vers l'URL de rappel que nous avons configurée à l'étape 3. 🎜🎜Ajoutez le code suivant à la fin de la méthode callback : 🎜rrreee🎜Cela redirigera l'utilisateur vers notre page d'accueil après une connexion réussie. 🎜🎜Vous pouvez désormais tester si votre application peut se connecter en fonction de l'authentification de l'utilisateur Github. 🎜🎜Conclusion🎜🎜Dans cet article, nous avons présenté comment implémenter l'authentification tierce à l'aide de Laravel Socialite et Github. Étant donné que les utilisateurs d'aujourd'hui aiment s'inscrire et se connecter rapidement, cette approche peut rendre votre application plus conviviale et également rendre votre application plus flexible. 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn