ページの作成
親となるページを選択してください。
ページは必ず何かしらの親ページに紐づきます。親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
テンプレート
- Ban dang tim kiem dia chi in an gia re va uy tin tai Ha Noi
- POPULLAR MOVIE
- POPULLAR MOVIE
- GK
- Dich vu in an sang tao doc dao an tuong
- Dich vu in an sang tao doc dao an tuong
- エラー
- コード+ヘッダ
- コード
- Paige
- T N lu
- Genia Begay
- Diego Herz
- Indira Tubbs
- Kfo M
- Muoi Crowe
- adwords zertifizierte agentur
- Charlie Ricker
- Jrfpgxn
- J Xwkzgg b Pzg
- Maryam
- Matt Aplin
本稿は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) { |
- インストールと設定
- クイックスタート & チュートリアル(初心者向け)
- クイックスタート & チュートリアル(中級者向け)
- ルーティング
- 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編)
人気ページ
最近更新/作成されたページ
- HylenDrason NEW! (2024-11-19 11:02:04)
- Hướng dẫn chọn miếng lót giày tăng chiều cao nam phù hợp và thoải mái NEW! (2024-11-11 11:16:02)
- Hướng dẫn chọn miếng lót giày tăng chiều cao nam phù hợp và thoải mái (2024-11-11 11:12:10)
- Lam Sao De Thiet Ke In An Dep Va Chuyen Nghiep Thu Hut Moi Anh Nhin NEW! (2024-10-22 13:01:28)
- Tc Lottery Hack (2024-09-06 20:03:21)
- nuochoa (2024-08-28 18:19:42)
- 指定された名前のソリューションファイルが既に存在するため、ソリューション名を変更できません (2024-08-22 12:39:28)
- Ban dang tim kiem dia chi in an gia re va uy tin tai Ha Noi (2024-08-16 22:31:51)
- Mahipalpur Call Girls (2024-07-10 14:24:48)
- Tem Chống Hàng Giả - Lựa Chọn Tối Ưu Cho Doanh Nghiệp Trong Thời Đại Mới (2024-07-03 18:51:13)
最近コメントのあったページ
- プロジェクトの作成と削除 (2024-11-04 17:48:00)
- トップページ (2024-10-30 13:18:39)
- トップページ (2024-10-29 19:20:39)
- 【Spring】@Idアノテーションとは (2024-10-16 06:32:45)
- Google Cloud Platformの使い方 (2024-10-14 02:16:25)
- Google Cloud Platformの使い方 (2024-10-14 01:37:38)
- Google Cloud Platformの使い方 (2024-10-14 00:23:49)
- Google Cloud Platformの使い方 (2024-10-13 01:19:45)
- Google Cloud Platformの使い方 (2024-10-12 19:39:52)
- Google Cloud Platformの使い方 (2024-10-11 20:47:21)
最近の質問
- mmlmlmlmnok (2024-10-09 16:09:38)
- Factual information supported by reputable sources (2024-05-16 18:31:57)
- How can MyAssignmentHelp UK assist students as an assignment helper? (2024-02-03 19:15:52)
- c.wiki (2023-09-14 10:51:04)
- $(document).ready(function() { ... ってなに? (2023-04-17 11:02:56)
- 質問です (2020-02-20 12:19:36)
- フリーランスの単価って高いですか? (2020-02-12 19:56:16)
- 情報系のaoを受けるつもりなんですが何かおすすめのソフトはありますか? (2020-02-12 19:54:22)
- test3 (2020-02-08 23:50:54)
- セレクトボックスのCSSのcontentで三角の部分が押せない (2019-07-03 13:06:10)
- GCPのwp-config.phpでpermission denied (2019-06-05 20:04:08)
- Spring FrameworkのEntityのカラム名の大文字小文字、アンスコについて (2019-02-01 07:13:49)
- PHP(Laravel)からPythonのプログラムを呼び出したいのですがどうすればよいでしょうか。 (2018-12-06 06:26:57)
- djangoを本番環境にデプロイしたいのですがどのレンタルサーバー or VPSサーバーがよいですか (2018-12-01 12:04:18)
- Django administrationのUsernameとPasswordについて (2018-11-30 11:55:20)
- Google Adsenseでアダルトコンテンツと誤認されてしまいました。 (2018-09-09 17:15:36)
- Google MapsをUnityで使用する方法&料金 (2018-08-28 02:37:26)
- Amazon PA-APIのSort=salesrankが効かない (2018-07-21 08:54:25)
- 楽観ロックと悲観ロックの違い (2018-01-11 05:05:33)
- レンタルサーバーって沢山ありますけどどこがいいでしょうか?AWSってどうなんですか? (2018-01-09 10:03:20)
- ディープラーニングのライブラリってどれがオススメですか? (2018-01-06 05:15:40)
- Webスクレイピングってどこまでが違法なんでしょうか? (2018-01-06 05:09:08)
- 人工知能(AI)、機械学習、ディープラーニングの違い (2018-01-06 02:40:44)
コメントを削除してもよろしいでしょうか?
コメントがありません