はじめに
前回、Auth0公式Quickstartで学ぶ!ReactのSPAに認証機能を組み込んでみたという記事で、Reactアプリに「ログイン」「ログアウト」「ユーザー情報表示」を組み込みました。
今回はその続きとして、「ログイン強化編」全2回の1回目、Passkey(パスキー) を使ったログインを追加してみます。2回目ではMFA(多要素認証)を追加する予定です。
Passkeyは、パスワードの代わりにデバイスの生体認証(指紋・顔認証)やPINでログインできる仕組みです。フィッシングに強く、パスワードを覚える・管理する必要がなくなるのが最大のメリットです。
Auth0では、Passkeyの有効化はダッシュボードの設定のみで完了し、前回作ったReactアプリのコードは一切変更しません。「Passkey実装して」と言われて身構える必要がないことを、実際に手を動かして確認してみます。
※こちらの手順は2026年09月時点のものとなります。
事前準備
- 前回作成したReactアプリ(
auth0-react-quickstart) - Auth0のテナント環境(無料トライアルで作成可能です)
- Passkeyを試すためのデバイス(Windows Helloや、MacのTouch ID/Face IDなど生体認証に対応した環境を推奨します)
1. Auth0ダッシュボードでPasskeyを有効化する
-
Auth0ダッシュボードの左メニューから 「認証」→「データベース」 を選択し、前回のアプリで使用しているデータベース接続(デフォルトでは
Username-Password-Authentication)をクリックします。 -
データベース接続の 認証方法タブ にある パスキーの「構成」 を選択します。
-
「パスキーを有効化」 のチェックボックスをONにします。また、その下にある パスキー認証の前提条件 を全て完了させます。
-
画面下部の 「保存」 をクリックします。
これでAuth0側の設定は完了です。Reactアプリ側のコードは前回のまま、何も変更していません。
2. 実際に動かしてみる
前回作成したReactアプリをそのまま起動します。
npm run dev
-
http://localhost:5173にアクセスし、 「Log In」 をクリックしてユニバーサルログイン画面を表示します。 -
既存アカウントでログイン、またはサインアップします。ログインに成功すると、ユニバーサルログイン画面上で 「このデバイス上でReact App用にパスキーを作成」 といった案内が表示されます。
-
案内に従って登録を進めると、OS標準の生体認証(Touch ID / Windows Helloなど)のダイアログが表示されます。指紋や顔認証を行うと、パスキーの登録が完了します。
-
登録後は前回と同じく、ユーザーのアイコン・名前・メールアドレスと 「Log Out」 ボタンが表示されたアプリ画面に遷移します。ここまではコード上の見た目に変化はありません。
-
「Log Out」 で一度サインアウトし、再度 「Log In」 をクリックします。今度はメールアドレス/パスワードの入力を求められず、デバイスの生体認証だけでログインが完了することを確認できます。
パスワードを一切入力せずにログインが完了しました。Reactアプリ側のコードは前回から1行も変えていません。
まとめ
Auth0公式Quickstartで作ったReactアプリに、Passkeyログインを追加してみました。
- Passkeyの有効化はAuth0ダッシュボードの設定のみで完了し、アプリ側のコード変更は不要
- ユニバーサルログインが登録・ログインのUIを丸ごと提供してくれるため、WebAuthnの実装を自分で書く必要がない
- 一度登録すれば、パスワード入力なしで生体認証だけでログインできる
次回は「ログイン強化編」の2回目として、MFA(多要素認証) を同じReactアプリに追加してみます。







