24
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel8で追加された認証の種類が多いけどどれを選ぶべきなのか?

Last updated at Posted at 2021-07-02

Laravel7まではLaravel UIしか無かったのに
https://readouble.com/laravel/7.x/ja/authentication.html
Laravel8になってからなんか色んな選択肢が増えた。

認証バックエンドライブラリ

アプリケーションスターターキット

ざっくり各種パッケージの説明

Laravel Sanctum

APIトークンSPA認証チームの機能など盛りだくさん

Laravel Jetstream

https://readouble.com/jetstream/1.0/ja/api.html
https://readouble.com/jetstream/1.0/ja/authentication.html
Laravel JetstreamはファーストパーティとしてLaravel SanctumとLaravel Fortifyを統合しているアプリケーションスターターキット。

https://readouble.com/jetstream/1.0/ja/installation.html
jetstreamをインストールする際にLivewireInertia.jsを選ぶ必要がある。

機能
'--teams'オプションの説明
https://readouble.com/jetstream/1.0/ja/teams.html
メール認証
https://reffect.co.jp/laravel/laravel-email-verification

Livewire

特徴
  • ページをリロードすることなくページの更新することができる。
  • Bladeに拡張する感じなので、学習コストがかかる。
  • Laravelのみでしか使えない。
  • UIはTailwind CSS

vue.jsとかでやることを無理やりphpだけでやろうとしてる感がする。

Inertia.js

特徴
  • Vue Routerは使わない
  • API(axios)を使わずにvue.jsとControllerをつないでくれるイメージ
  • UIはTailwind CSS

https://reffect.co.jp/laravel/laravel-inertia-js
https://reffect.co.jp/laravel/laravel-inertia-js-crud
https://qiita.com/Ayumu_Usu/items/9bc9c8684222f2eed7cd
https://qiita.com/Ayumu_Usu/items/9bc9c8684222f2eed7cd


Laravel Fortify

https://readouble.com/laravel/8.x/ja/fortify.html
シンプルな認証機能。
Laravel UIのバックエンドほどんど同じ機能だと思う。

Laravel Breeze

Laravel BreezeはファーストパーティとしてLaravel Fortifyを統合しているアプリケーションスターターキット。

特徴

  • フロントはBladeでUI部分はTailwind CSS
  • フロント部分はInertia.jsに変更可能

Laravel UI

https://readouble.com/laravel/8.x/ja/frontend.html
Bootstrap、React、Vueの中から好きなUIを選べる。
後は基本的なAuthに必要なControllerとかが自動で生成される。

Laravel8ではこちらは推奨されていない模様。


まとめ

コアのバックエンド部分のみ必要でフロントは自分で作る場合はLaravel SanctumLaravel Fortifyのみをインストールすれば良さそう。
もしAPI認証、二段階認証などの機能が必要な場合はLaravel Sanctum、シンプルな認証機能だけならLaravel Fortifyという感じで選べばいいと思う。

アプリケーションスターターキットを使わない実装例(Laravel Sanctum + Vue.js)
https://qiita.com/hikkappi/items/b95626bb51bbf2ebcd2d

UIもできているものを使いたい場合はLaravel JetstreamLaravel Breezeを選択する。
こちらの選び方はバックエンドのファーストパーティとしてLaravel SanctumLaravel Fortifyどちらを使いたいかによって変わってくる。

Laravel FortifyとLaravel Sanctum

一部の開発者は、Laravel SanctumとLaravel Fortifyの違いについて混乱します。 2つのパッケージは2つの関連はあるが別々の問題を解決するため、Laravel FortifyとLaravel Sanctumは相互に排他的、もしくは競合するパッケージではありません。
Laravel Sanctumは、APIトークンの管理と、セッションCookieまたはトークンを使用した既存のユーザーの認証のみに関係しています。 Sanctumは、ユーザー登録、パスワードのリセットなどを処理するルートを提供していません。
APIを提供するアプリケーション、またはシングルページアプリケーションのバックエンドとして機能するアプリケーションの認証レイヤーを自前で構築しようとしている場合は、Laravel Fortify(ユーザー登録、パスワードのリセットなど)およびLaravel Sanctum(APIトークン管理、セッション認証)の両方を利用すのは完全に可能です。

引用元: https://readouble.com/laravel/8.x/ja/fortify.html

API認証をしたいケース

API認証をしたい場合はLaravel Sanctumを選択したほうがいいと思います。
https://reffect.co.jp/laravel/laravel-sanctum-token

Laravel Fortifyでも自分で作れば二段階認証できる。
https://turningp.jp/programing/php/laravel/fortify-2fa

 参考

24
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?