laravel socialite:laravelアプリケーションでのソーシャル認証の合理化
この記事は、Wern Anchetaやその他のSitePoint Reviewersによって査読され、Laravel SocialIte、Packageを簡素化するソーシャル認証を探ります。
Laravel SocialIte Abstractsは、複雑なソーシャルログイン認証を抽象化しています コミュニティが提供する拡張機能を備えた主要なOAuthプロバイダーをサポートしています 構成には、各ソーシャルプラットフォームにアプリを登録して資格情報を取得し、
。config/services.php
ソーシャル認証をソーシャルに追加する:
php artisan make:auth php artisan migrate
/login
:に登録します
socialiteは、怠zyな荷積みのシングルトンサービスです。
構成:
composer require laravel/socialite
:config/app.php
に追加します
'providers' => [ // ... Laravel\Socialite\SocialiteServiceProvider::class, ], 'aliases' => [ // ... 'Socialite' => Laravel\Socialite\Facades\Socialite::class, ],
ファイルに実際のキー値を保存します。
データベースの変更:
ソーシャルログインに対応するには、テーブルスキーマを変更して、ヌル可能な電子メールとパスワードフィールドを許可します。 config/services.php
:
'facebook' => [ 'client_id' => env('FB_CLIENT_ID'), 'client_secret' => env('FB_CLIENT_SECRET'), 'redirect' => env('FB_URL'), ], // ...similar entries for other providers...
移行を作成:.env
移行ファイル()を更新して、と
をnullableにします。
users
リンクされたソーシャルアカウントのモデルと移行を作成します(doctrine/dbal
、
composer require doctrine/dbal
。
モデル:
両方のモデルで、とUser
の間の1対多数の関係を定義します。 LinkedSocialAccount
provider_name
provider_id
コントローラー:LinkedSocialAccount
およびメソッドを使用して
を作成します。OAuthプロバイダーにリダイレクトします。 SocialAccountController
ヘルパークラスを使用してユーザーを見つけたり作成したり、ソーシャルアカウントをリンクしたりして、コールバックを処理します。
redirectToProvider
handleProviderCallback
SocialAccountSService Helperクラス:redirectToProvider
handleProviderCallback
SocialAccountsService
このクラスの
ルート:
ソーシャルログインのリダイレクトとコールバック用のルートをfindOrCreate
:
githubログイン例:
routes/web.php
github oauthアプリケーションを登録し、資格情報を取得し、それらを
php artisan make:auth php artisan migrate
config/services.php
.env
ソーシャル人プロバイダープロジェクトは、多くの非公式プロバイダーを提供しています。 LaravelのSocialIte Service Providerを
の社交プロバイダーのサービスプロバイダーに置き換えます。 各プロバイダーのイベントリスナーを
に登録します spotifyログイン例:
config/app.php
Composerを使用してSpotifyプロバイダーをインストールし、Spotifyの開発者プラットフォームにアプリを登録し、資格情報をapp/Providers/EventServiceProvider.php
に追加し、Spotifyログインリンクをビューに追加します。
カスタムプロバイダーの作成:.env
プロバイダークラスを作成し、を拡張し、イベントリスナーを登録します。 ガイダンスについては、元の記事のDeezerプロバイダーの例を参照してください。
完全なコードはGitHubで利用できます。 この記事は、インストール、構成、エラー処理、セキュリティ、およびテストをカバーするFAQで締めくくります。
以上がソーシャルログインをソーシャルライトで簡単に追加してくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。