0
1

認証情報の取り回し

Posted at

はじめに

ログイン・ログアウト機能じゃなくて、全体的にユーザー認証情報をどのように持つのか?
バックエンドだけで実装するには?
セッションとかAPIトークンについて調べる

LaravelはAuth認証システムとして、passportとsanctum(読み方:サンクタム)を提供
• Laravel passportは OAuth2(読み方:オーオース)認証ベース
• Laravel SanctumはAPIトークンベース

Laravel Sanctumを使ってAPIトークン(BearerToken 読み方:ベアラートークン)を使った認証とLaravelのセッション管理を使ったSPA認証のパターンが実装できる!

APIトークン機能とSPA 認証機能

Laravel SanctumはAPIトークン機能とSPA認証機能という2つの機能がある

Laravel Sanctumは、受信リクエストが自身のSPAフロントエンドから発信された場合にのみクッキーを使用して認証を試みます。Sanctumが受信HTTPリクエストを調べるとき、最初に認証クッキーをチェックし、存在しない場合は、Sanctumは有効なAPIトークンのAuthorizationヘッダを調べます。

API認証

3.jpg

APIトークン機能はJWT認証でよく使われるAPIトークンをAuthorizationヘッダを介して受信、HTTPリクエストを認証する

SPA認証

2.jpg

1.jpg

SPA認証機能はトークンの代わりにクッキーベースのセッション認証サービスを使用。
WEB認証ガードを利用して、CSRF保護、セッション認証の利点が提供できるだけでなく、XSSを介した認証資格情報の漏洩を保護する

CSRF対策について

APIモードで実装するために、CSRFトークンは使えない。そんな時、どうする?
→APIトークンを使う

参考記事:
Laravel 10.x Eloquent:APIリソース
Laravel 10.x Laravel Sanctum
Laravel 10.x CSRF保護
【Laravel】SanctumでAPIトークン認証の使い方とSPA認証との比較
一番分かりやすい OAuth の説明
OAuth アプリケーションと API トークンの違い
HTTP 認証

0
1
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
0
1