Skip to main content
この記事は laravel/passkeys-serverlaravel/passkeys の README に基づく初期調査です。両パッケージはまだタグなしの開発段階です(2026年4月時点)。

これは何のパッケージか

Laravel の公式リポジトリで、パスワードレス認証(WebAuthn / パスキー)を実装するための 2 つのパッケージが公開されています。 この 2 つを組み合わせると、Laravel アプリでパスキー登録とパスキーログインを一貫して実装できます。

サーバー側: laravel/passkeys-server

インストールと初期セットアップ

1

PHPパッケージを追加する

2

マイグレーションを公開して実行する

3

Userモデルに trait と contract を追加する

必要に応じて設定ファイルも公開できます。

自動登録されるルート

config/passkeys.php の主要オプション

  • relying_party_id
  • allowed_origins
  • user_handle_secret
  • timeout
  • guard
  • middleware
  • throttle
  • redirect

イベント

パッケージは以下のイベントを発火します。
  • PasskeyRegistered
  • PasskeyVerified
  • PasskeyDeleted

カスタマイズポイント

Passkeys::authorizeLoginUsing() で、検証成功後のログイン許可を制御できます。停止したい場合は false を返すか、ValidationException を投げます。
GenerateRegistrationOptions / GenerateVerificationOptions / StorePasskey / VerifyPasskey / DeletePasskey を継承してサービスコンテナへバインドし、挙動を差し替えできます。
PasskeyLoginResponse などのコントラクトを独自実装して、成功時レスポンス(JSON・リダイレクトなど)をアプリ要件に合わせて変更できます。

クライアント側: @laravel/passkeys

@laravel/passkeys はブラウザ側 WebAuthn ceremony を扱う JavaScript クライアントです。

インストール

基本 API

フレームワークヘルパー

  • React: @laravel/passkeys/reactusePasskeyVerify, usePasskeyRegister
  • Vue: @laravel/passkeys/vueusePasskeyVerify, usePasskeyRegister
  • Svelte: @laravel/passkeys/svelteusePasskeyVerify, usePasskeyRegister

パスキーオートフィル

autofill: true を指定すると、autocomplete="... webauthn" を持つ input にブラウザのパスキーピッカーを表示できます。サポートされない環境やユーザーキャンセル時は通常フローへフォールバックします。

型付きエラー

README では次のエラークラスが公開されています。
  • NotSupportedError
  • UserCancelledError
  • PasskeyExistsError
  • PasskeyError(ベースクラス)

SSR 対応

WebAuthn はブラウザ API ですが、各フレームワーク用フックは SSR セーフです。サーバー側では isSupportedfalse として扱われ、マウント後に実ブラウザ状態へ更新されます。

まとめ

  • laravel/passkeys-server(PHP)と @laravel/passkeys(JS)を組み合わせると、Laravel で完結したパスキー認証スタックを構築できます。
  • どちらもタグなしの開発段階ですが、Laravel 公式エコシステムとして今後の標準認証手段になる可能性が高いです。
  • 早期採用する場合は、README のルート・設定・エラーハンドリング・カスタマイズ拡張点を前提に設計すると安全です。
その後パスキーは Laravel Fortify の機能として正式に追加されました。Fortify 経由でパスキーを有効化する場合は、laravel/passkeys-server を直接インストールするのではなく Features::passkeys() を使います。詳細は Laravel Fortify とスターターキット を参照してください。

laravel/passkeys-server

サーバー側パッケージの最新 README と実装を確認します。

@laravel/passkeys

クライアント側パッケージの最新 README と API を確認します。

Laravel Fortify とスターターキット

Fortify 経由でのパスキー有効化手順と、スターターキットとの関係を解説します。
最終更新日 2026年5月5日