1. HOME
  2. ブログ
  3. IT技術
  4. Jetstreamでのマルチ認証について
Jetstreamでのマルチ認証

Jetstreamでのマルチ認証について

Jetstreamを使って2種類のユーザー認証をする

今回はJerstreamを使って2種類のユーザーを認証していきます。

具体的には User と Worker の2種類のユーザーを作成して認証します。

Jestreamをインストール

まずはJetstreamをインストールしていきます。

私の場合既に立ち上げたアプリにJetstreamをインストールしたので、

以下のようなコマンドでインストール

Jetstreamにはteamsというチーム機能をサポートするものがありますが今回は使用しません。

(マルチ認証の際に少し悪さをしたため)

Jetstreamをインストールした後は以下のコマンドで環境を構築し、DBのマイグレートまで行いましょう。

これでJetstreamを使う準備は整いました。

認証機能の実装に進みましょう。

マルチ認証の実装

Jetstreamでは標準でUserの認証機能が実装されています。

Workerの認証機能はこのUserの機能をコピーして一部修正するような形で実現していきます。

まずは WorkerLoginResponse.php を作成していきます。

これは vender/laravel/fortify/src/Http/Responses/LoginResponse.php を参考に作成していきます。

app/Responseディレクトリを作成しその中にWorkerLoginResponse.phpを作成します。

ここでWorker用のログイン画面も作成しておきましょう、と言ってもここでは標準で実装されているlogin.blade.phpを修正する形を取ります。

issetでguard変数の有無を判別してURLを分けています。

次にapp/Actions/Workerディレクトリを作成しAttemptToAuthenticate.phpを作成します。

こちらはvendor/laravel/fortify/src/Actions/AttemptToAuthenticate.phpを参考に作成します。

ここで作成したAttemptToAuthenticate.phpとのちに作成するLoginControllerで使用するWorkerLoginServiceProvider.phpを作成します。

たった今作成したWorkerLoginServiceProvider.phpが反映されるようにapp.phpを修正します。

ここでWorker認証用のWorkerLoginControllerを作成していきます。

vendor/laravel/fortify/src/Http/Controllers/AuthenticatedSessionController.php を参考に WorkerLoginControllerを作成。

Workerとしてログインした後のダッシュボード表示用にWorkerDashboardController.phpとWorker/dashboard.blade.phpを作成していきます。

また未ログイン時にダッシュボードにアクセスした時にログイン画面にリダイレクトされるようAuthenticate.phpを編集します。

Worker用のログイン画面とダッシュボードのルーティングをしていきます。

最後に auth.phpにWorler用の認証ガードを定義します。

以上でマルチ認証が完成しました!!

WorkerとUserの2通りでログインができるようになったかと思います。

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア