ホームページ >バックエンド開発 >PHPチュートリアル >ソーシャルログインをソーシャルライトで簡単に追加してください
laravel socialite:laravelアプリケーションでのソーシャル認証の合理化
この記事は、Wern Anchetaやその他のSitePoint Reviewersによって査読され、Laravel SocialIte、Packageを簡素化するソーシャル認証を探ります。
Socialiteは、Google、Facebook、Twitter、LinkedIn、Github、およびBitbucketを直接サポートしています。 これ以上の公式プロバイダーは計画されていませんが、コミュニティ主導のソーシャルプロバイダープロジェクトは、多くの非公式の拡張機能を提供しています。 このチュートリアルは、動作するLaravelアプリケーションを想定しています。 堅牢な開発環境には、Homesteadの改善が提案されています 重要な概念:
Laravel SocialIte Abstractsは、複雑なソーシャルログイン認証を抽象化しています コミュニティが提供する拡張機能を備えた主要なOAuthプロバイダーをサポートしています 構成には、各ソーシャルプラットフォームにアプリを登録して資格情報を取得し、
。config/services.php
ソーシャル認証をソーシャルに追加する:
<code class="language-bash">php artisan make:auth php artisan migrate</code>コンポーザーを使用してソーシャルをインストールします:
/login
:に登録します
socialiteは、怠zyな荷積みのシングルトンサービスです。
構成:
<code class="language-bash">composer require laravel/socialite</code>クライアントIDとシークレットキーを取得するために、希望する各プラットフォームにOAuthアプリケーションを登録します。 これらの資格情報を
:config/app.php
に追加します
<code class="language-php">'providers' => [ // ... Laravel\Socialite\SocialiteServiceProvider::class, ], 'aliases' => [ // ... 'Socialite' => Laravel\Socialite\Facades\Socialite::class, ],</code>
ファイルに実際のキー値を保存します。
データベースの変更:
ソーシャルログインに対応するには、テーブルスキーマを変更して、ヌル可能な電子メールとパスワードフィールドを許可します。 config/services.php
:
<code class="language-php">'facebook' => [ 'client_id' => env('FB_CLIENT_ID'), 'client_secret' => env('FB_CLIENT_SECRET'), 'redirect' => env('FB_URL'), ], // ...similar entries for other providers...</code>
移行を作成:.env
移行ファイル()を更新して、と
をnullableにします。
users
リンクされたソーシャルアカウントのモデルと移行を作成します(doctrine/dbal
、
<code class="language-bash">composer require doctrine/dbal</code>を含める必要があります。 実行
。
モデル:
両方のモデルで、とUser
の間の1対多数の関係を定義します。 LinkedSocialAccount
provider_name
provider_id
コントローラー:LinkedSocialAccount
およびメソッドを使用して
を作成します。OAuthプロバイダーにリダイレクトします。 SocialAccountController
ヘルパークラスを使用してユーザーを見つけたり作成したり、ソーシャルアカウントをリンクしたりして、コールバックを処理します。
redirectToProvider
handleProviderCallback
SocialAccountSService Helperクラス:redirectToProvider
handleProviderCallback
SocialAccountsService
このクラスの
ルート:
ソーシャルログインのリダイレクトとコールバック用のルートをfindOrCreate
:
githubログイン例:
routes/web.php
github oauthアプリケーションを登録し、資格情報を取得し、それらを
<code class="language-bash">php artisan make:auth php artisan migrate</code>に追加します。 githubログインリンクをログインビューに追加します。
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 サイトの他の関連記事を参照してください。