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を使います。

これで

YOUR_MAIL@gmail.com

111111

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

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

あとがき

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

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

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

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

次回はSocial Loginです。

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

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

If this blog is good
If this article is good
Bitcoin
12mEmvjEr4fwdJtiKWs5McV2Pm9LZB3iGX
スポンサーリンク
Sponsor Link



Sponsor Link



シェアする

  • このエントリーをはてなブックマークに追加
スポンサーリンク
Sponsor Link