Multi AuthとSocial Loginを作ってみた。Multi Auth編

Multi AuthとSocial Loginを作ってみた。

最近余談ばかりなので今回は簡潔にするつもり。

今回デリケートな内容ですのでデモはありません。

またSocial Loginには各SNSアカウントとAPI_KEY/API_SECRETが必要です。

各種設定が必要になってまいります。

またGithub等にUpする際はアカウント関連は.gitignore等で.envを除外してください。

 

Github MIT License

使い方

 

 

またLaravelのインストール・データベース設定は以前の記事を見てください。

流れ

Model->App\Config->Controller->route->view

こんな形で説明

Multi Auth

Laravel 5.2から実装された機能

Admin や ECなどではSeller / Buyerアカウントなどに派生できる基礎的な部分です。

Model

Auth作成

ModelとMigration File作成

 

App\Admin.phpを下記に変更

sendPasswordResetNotificationファンクションはNotificationで説明

Migration File

user

Social LoginのためにEmailとPasswordをnullable指定

通常のAuth登録時はControllerのバリデーションする。

adminsテーブルを作成

権限の細分化するためのroleカラム作成

Migration

 

config\auth.php

config\auth.phpでMiddlewareでAdmin権限を作成

 

Controller

AdminController作成

app\Http\Controllers\AdminController編集

 

app\Http\Controllers\Auth下のファイルを

app\Http\Controllers\Auth\Adminを作りコピペ

 

app\Http\Controllers\Auth\Admin\ForgotPasswordController編集
下の2つの関数はAdmin用にSendsPasswordResetEmailsからオーバーライドするため。
 

app\Http\Controllers\Auth\Admin\LoginController編集
 

app\Http\Controllers\Auth\Admin\RegisterController編集
一応作っておきますが、route\web.phpでコメントアウトして機能実装はしていません。
app\Http\Controllers\Auth\Admin\ResetPasswordController編集

 

Notification

app\Notification\AdminResetPasswordNotification.php作成

Adminのパスワードリセットする際の設定ファイル

基本User AuthのオーバーライドでAdmin向けに変更したい内容を編集

 

Exceptions/Handler.php

例外処理 下記追加

 

 

route

route\web.php編集

view

resources/views/auth下のファイルを/resources/views/auth/adminにコピペ

 

resources/views/components/who.blade.phpをデバック用に作成

 

Home.blade.phpとwelcome.blade.phpに下記追加

これでUserにログインしているかAdminにログインしているか確認できます。

 

resources/views/admin.blade.php作成

Login後のページ

 

resources/views/auth/admin下のファイルを編集する。

基本編集は不要で表示をUserからAdminに変更などを行う。

routeヘルパー先をすべてadminのnameに変更する。

route(‘admin.login’)はroute/web.phpの最後のnameと一致させる。下記のような設定

 

.env

メールが飛ぶかどうかの確認。

今回はGmailでテストしました。

.envのmail設定を下記に変更

Gmailの場合 『安全性の低いアプリの許可: 有効』にしないとMailを送れないため設定を行います。

 

Admin Login

これで一通りMulti AuthのAdminを作成できたと思います。

実際にログインできるか確かめるためにはTinkerを使います。

これで

[email protected]

111111

でログインできると思います。

 

是非試してみてください。

 

あとがき

今回はMulti Authを書きました。

超絶長くなってしまい本当に申し訳ないです。

かなり殴り書きになっているので誤字脱字あるかと思います。見つけ次第修正するようにします。

BlogとGithubで差異があった場合はGithubのファイルやコードが正しいと思ってください。

 

次回はSocial Loginです。

たぶんこんなには長くならないと思います。。

 

ここまで見ていただきありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です