Github などのサードパーティ アカウントを使用して Laravel アプリケーションにログインします。
Laravel の Socialite を使用すると、Facebook、Twitter、Google、LinkedIn、GitHub、Bitbucket などのサードパーティ アカウントを使用して Laravel アプリケーションに簡単にログインできます。これらは、既存のユーザーとのサードパーティ接続に使用したり、主要なログイン メカニズムとして使用したりできます。公式ドキュメントにはいくつかの手順が記載されていますが、読んだ後もログイン機能の実装方法がわからない友人もたくさんいます。今日は Github を例として、その実装方法を詳しくリストします。
1. Socialite をインストールします
Composer コマンドラインからインストールします:
$ composer require laravel/socialite
次に、config/app.php に登録します:
'providers' => [ ... Laravel\Socialite\SocialiteServiceProvider::class, ...],'aliases' => [ ... 'Socialite' => Laravel\Socialite\Facades\Socialite::class, ...],
Socialite がアプリケーションに登録されたので、証明書を設定しましょう。
2. Github アプリケーションを作成します
まず、Github アカウントが必要です。次に、「設定」-「OAuth アプリケーション」-「開発者アプリケーション」-「新しいアプリケーションの登録」に移動して、OAuth アプリケーションを作成します。
アプリケーション情報を入力した後:
このうち、「
認可コールバック URL」を「http://your-domain-name.com/auth/github/callback」に設定する必要があります。アプリケーションの実際の状況に応じて設定してください。作成が完了すると、アプリの詳細ページで「クライアントID」と「クライアントシークレット」の値が確認できます。
3. サービス設定
config/services.php
ファイルを開き、Github の認証情報を追加します: 'github' => [ 'client_id' => 'your-github-app-id', 'client_secret' => 'your-github-app-secret', 'redirect' => 'http://your-callback-url',],
」と「クライアント シークレット」を入力します。 2 番目のステップ そして、上記の「Authorization callback URL」の値を入力します。もちろん、.env ファイルで 3 つの環境変数を定義し、config/services.php の env() 関数を通じてそれらを取得することもできます。 4. ルートを定義します
次のルートを
routes.php に追加します (任意の名前にカスタマイズできますが、ここでは便宜上、以下の名前として直接定義されています): Route::get('auth/github', 'Auth\AuthController@redirectToProvider');Route::get('auth/github/callback', 'Auth\AuthController@handleProviderCallback');
5. コントローラーのメソッド
AuthAuthController に次のメソッドを追加します。
public function redirectToProvider() { return Socialite::driver('github')->redirect(); } public function handleProviderCallback() { try { $user = Socialite::driver('github')->user(); } catch (Exception $e) { return Redirect::to('auth/github'); } $authUser = $this->findOrCreateUser($user); Auth::login($authUser, true); return redirect('/'); } private function findOrCreateUser($githubUser) { if ($authUser = User::where('github_id', $githubUser->id)->first()) { return $authUser; } return User::create([ 'name' => $githubUser->name, 'email' => $githubUser->email, 'github_id' => $githubUser->id, 'avatar' => $githubUser->avatar ]); }
上記は一般的な実装方法です。 もちろん、独自の方法で実装することもできます。まず Github にジャンプしてユーザー認証を取得し、次に Github に戻り、Github ID に基づいてユーザーを見つけてログインするか、新しいユーザーを作成します。
6. データベース設計
Github 固有の情報を保存するには、ユーザーの移行を変更する必要があります。 Github は多くの情報を返してくれるので、そのうちのいくつかをここに保存するために選択します。
$table->increments('id'); $table->string('github_id')->unique(); $table->string('name'); $table->string('email'); $table->string('avatar'); $table->rememberToken(); $table->timestamps();
ここではデモンストレーションを行っているため、実際のニーズに応じて上記に直接変更できます。 Github から返される情報はおおよそ次のとおりです:
7. User Eloquent
Github 情報を保存できるように User Eloquent モデルを変更します:
protected $fillable = ['name', 'email', 'github_id', 'avatar'];
上記のコードが具体的にどのように実行されるかを見てみましょう。
8.
を使用して、ログインが必要な次のリンクを追加します。そのターゲット アドレスは、上で追加したルート auth/github を指します。
ユーザーが上のボタンをクリックすると、Github の認証ページにジャンプし、ユーザーが認証を実行するかどうかを尋ねます。ユーザーが許可すると、auth/github/callback に戻ります。 「認可コールバック URL」はアプリケーション作成時に入力しました。
その後、コールバック関数内のコードが実行されて、既存のユーザーにログインするか、新しいユーザーを作成してログインします。
Laravel によってユーザーが承認されたので、Auth::check()、Auth:user() など、Auth によって提供されるすべてのメソッドを直接使用できるようになります。 Auth::logout() メソッドを実行して、ログアウトするためのログアウト ルートを追加することもできます。以降の操作はLaravel独自の認証システムを使用する場合と同様に行えます。
上記で、Github アカウントを使用して Laravel アプリケーションにログインするすべての手順が完了しました。他のサードパーティ アプリケーションの実装も基本的に同様です。
参照: laravel.com 、mattstauffer.co

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています
