Laravel Jetstream 1.0 API

イントロダクション

JetstreamはファーストパーティとしてLaravel Sanctumを統合しています。Laravel SanctumはSPA(single page applications)モバイルアプリケーションのための軽い認証システムであり、シンプルなトークンベースのAPIです。Sanctumによりアプリケーションの各ユーザーは複数のAPIトークンを生成することができます。どのアクションの実行を許可するのかを指定するアビリティ/パーミッションをトークンへ付加できます。

Screenshot of Laravel Jetstream API

デフォルトではAPIトークン生成パネルは、ユーザープロフィールドロップダウンメニューの右上にある"API"リンクからアクセスします。このスクリーンでユーザーは様々なパーミッションを持つSanctum APIトークンを生成できます。

{tip} Sanctumの詳細とどのようにSanctum認証APIへリクエストを発行するかは、Sanctumのドキュメントを参照してください。

APIサポートの有効化

アプリケーションでサードパーティへAPIを提供する場合、JetstreamのAPI機能を有効にしてください。そのためには、config/jetstream.php設定ファイルのfeatures設定オプションにある関連するエントリのコメントを外します。

'features' => [
    Features::profilePhotos(),
    Features::api(),
    Features::teams(),
],

パーミッションの定義

APIトークンで使用できるパーミッションは、アプリケーションのJetstreamServiceProviderで、Jetstream::permissionsを使用し定義します。パーミッションは単なる文字列です。定義できたら、APIトークンへ割り付けます。

Jetstream::defaultApiTokenPermissions(['read']);

Jetstream::permissions([
    'create',
    'read',
    'update',
    'delete',
]);

defaultApiTokenPermissionsメソッドは新しいAPIトークン生成時に、どのパーミンションをデフォルトとするかを指定するために使います。もちろん、もちろんユーザーはトークン作成前にデフォルトパーミッションのチェックを外せません。

受信リクエストの認証

Jetstreamアプリケーションへ向けて送られるリクエストはすべて、たとえroutes/web.phpファイルで認証済みのルートであっても、Sanctumトークンオブジェクトと関連付けられます。Laravel\Sanctum\HasApiTokensトレイトが提供するtokenCanメソッドを使用し、特定のパーミンションがトークンに関連付けられているかを判定できます。このトレイトはJetstreamのインストールにより、アプリケーションのApp\Models\Userモデルへ自動的に適用されています。

$request->user()->tokenCan('read');

ファーストパーティUIが開始するリクエスト

ユーザーがroutes/web.phpファイル中のルートへリクエストを送ると、そのリクエストは通常クッキーベースのwebガートを通じてSanctumにより認証されます。このシナリオではアプリケーションのUIを通じ、ユーザーがファーストパーティリクエストを作成するため、tokenCanメソッドは常にtrueを返します。

最初、この振る舞いは奇妙に思えるでしょう。しかし、APIトークンが利用可能であり、 tokenCanメソッドにより調べられると常に想定できるため便利です。つまり、アプリケーションの承認ポリシー内ではリクエストにトークンが関連付けられていないことを心配せず、常にこのメソッドを呼び出すことができます。

ドキュメント章別ページ

スタック

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

バージョン

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる