ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
本稿はLaravelのソーシャルログインの実装に関する記事です。
Socialiteのインストール
|
composer require laravel/socialite |
config/app.phpの設定
「providers」と「aliases」に以下の記述を追記する。
|
'providers' => [
|
.envの設定
独自のSNSのkey情報などを記載する。
※各SNSでのkeyの取得やコールバックURLの設定に関しては他の記事を参照してください。
Google OAuthはこちらを参照。
各SNSのコールバックURLは以下の通りにして下さい。
https://~.com/social/callback/google
https://~.com/social/callback/twitter
|
GOOGLE_CLIENT_ID="..." TWITTER_KEY="..." SESSION_DOMAIN=~.com |
SESSION_DOMAINを記述しておかないと、callback url 呼び出し時に「Laravel\Socialite\Two\InvalidStateException」が発生します。
config/service.phpの設定
先ほど.envに設定した値を使用する。
|
'google' => [ |
Usersテーブルの定義変更
ソーシャルログインの場合、emailとpasswordカラムを使用しないのでnot null制約を外す必要がある。
migration機能もしくは直接修正すればよい。
migrationを使用する場合は以下のパッケージをインストールする必要があるので注意。
|
composer require doctrine/dbal |
ルート設定
web.appに以下の記述を追記する。
|
Route::get('social/login/{provider}','SocialLoginController@login'); |
コントローラーの作成
「App\Http\Controllers\Auth\SocialLoginController」を作成する。
|
<?php use App\Http\Controllers\Controller; use Log; use Socialite; class SocialLoginController extends Controller public function callback($provider) log::info(var_export($socialUser, true)); ...後続処理 } |
Googleの場合、statelessを指定しないとInvalidStateExceptionが発生する場合があります。
「log::info(var_export($socialUser, true))」の部分でレスポンスを確認できます。
あとはIDを見て存在すればログイン処理、存在しなければユーザ登録処理などに繋ぎましょう。
ID管理にuserテーブルにgoogle_idやtwitter_idカラムを追加するのもありです。
ログイン処理およびユーザー新規登録の実装例
以下、実装例を記載します。
userテーブルにgoogle_idおよびtwitter_idカラムを追加します。適当にvarchar(300)ほどで追加しましょう。nullを許容することを忘れずに。
続けて、コントローラーを以下の様に書き換えます。
|
<?php use App\Http\Controllers\Controller; class SocialLoginController extends Controller public function callback($provider) case "twitter": } catch (Exception $e) { |
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- インストールと設定
- クイックスタート & チュートリアル(初心者向け)
- クイックスタート & チュートリアル(中級者向け)
- ルーティング
- Bladeテンプレート(ビュー/レイアウト)
- コントローラー
- マイグレーションとテーブル定義
- データベースの設定
- Eloquentモデル (ORM)
- SQLとクエリビルダー
- バリデーション
- .envファイルの設定値へのアクセス
- 動作環境による分岐処理
- configフォルダ配下の設定値へのアクセス
- assetヘルパーを利用したpublicフォルダへのアクセス
- storageフォルダへのアクセス
- アプリケーション名の変更
- メンテナンス
- ログイン画面(認証システム)の作成
- ログインの必須化
- ログインユーザー情報の取得
- ルートの認証化
- 本番サーバーへのデプロイ方法
- 多言語化
- csrf_field
- ファイルのダウンロード
- CSVのアップロードおよび読み込み(maatwebsite/excel)
- ページタイトルの設定
- コマンド一覧
- エラー一覧
- SQLの実行ログ出力方法
- キャッシュのクリア
- Selectの結果の最初もしくは最後に任意の値を追加する方法
- ajaxでPOST通信する際の注意点
- ソーシャルログインの実装
- セッション情報の確認
- ログイン、ユーザー登録、パスワードリセット後のリダイレクト先の変更方法
- redirectやreturn viewにメッセージを付与する方法
- クッキー(cookie)の設定と取得
- クラスの再読み込み
- csrfの有効時間を変更する方法
- ViewComposerを用いてviewに共通の値を付与する方法
- View::shareを用いて共通の値を各ビューに渡す方法
- ミドルウェアを用いた処理の共通化
- Middleware内でAuth::check()などを使用する方法
- Controller以外でリダイレクトする方法
- セッションの値の取得/保存/更新/削除
- $requestの値を変更する方法
- 常時SSL化
- ページング(ページネーション)をする方法
- vue.jsとの連携
- Vue.jsと連携するSPA実行環境構築
- .envの値をvue.jsで参照する方法
- vue.jsを本番環境にリリースする方法
- could not find driver(Windows, MySQL編)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcatの起動/停止ログとcatalina.log/catalina.outの違い
- 3 【Javascript】base urlを取得する方法
- 4 YouTube Data API (v3) のエラー一覧|403系エラーの確認ポイント
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravelのエラー一覧|原因と対処の入口ページ
- 7 3Dグラフィックス
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOMEの確認方法(Linux, Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Apacheで.htaccessを有効化する方法 2026-05-12 17:19:39
- Laravelのmaxバリデーション 2026-05-12 17:19:39
- Laravelのrequiredバリデーション 2026-05-12 17:19:39
- Laravelでログインユーザー情報を取得する方法 2026-05-12 17:19:39
- Laravelのexistsバリデーション 2026-05-12 17:19:39
- Laravelのuniqueバリデーション 2026-05-12 17:19:39
- Javaで先頭と末端の文字を削除する方法 2026-05-12 11:20:54
- httpd.confの場所 2026-05-12 11:20:54
- Laravelでページタイトルを設定する方法 2026-05-12 11:20:54
- MethodNotAllowedHttpException No message の原因と対処法 2026-05-12 11:20:54
- httpd.conf(Apacheの設定ファイル) 2026-05-12 11:20:54
- Laravelの.envでDB設定を行う方法 2026-05-12 11:20:54
- XAMPPでドキュメントルートを変更する方法 2026-05-12 10:57:59
- Apacheのドキュメントルートを変更する方法 2026-05-12 10:57:59
- Cannot rebase: You have unstaged changes. の原因と対処法 2026-05-12 10:51:51
コメントを削除してもよろしいでしょうか?