インストール&クイックスタート
インストール
npm / pnpm / yarn
# npmnpm install @authrim/web
# pnpmpnpm add @authrim/web
# yarnyarn add @authrim/webアプリケーションでインポート:
import { createAuthrim } from '@authrim/web';CDN(スクリプトタグ)
プロトタイピングや静的HTMLサイトでは、CDNからSDKを読み込めます:
<script src="https://unpkg.com/@authrim/web@latest/dist/authrim-web.umd.global.js"></script>グローバルオブジェクト AuthrimWeb が利用可能になります:
<script> const auth = await AuthrimWeb.createAuthrim({ issuer: 'https://auth.example.com', clientId: 'my-app', });</script>前提条件
SDKを使用する前に、以下が必要です:
- Authrimインスタンス — 稼働中のAuthrimサーバー(例:
https://auth.example.com) - クライアントID — Authrim管理パネルでアプリケーションを登録して
clientIdを取得 - 許可されたオリジン — クライアント設定にアプリのオリジン(例:
https://myapp.com)を追加 - コールバックURL(ソーシャルログイン / OAuth用) —
https://myapp.com/callback.htmlをリダイレクトURIとして登録
初期化
createAuthrim() でAuthrimクライアントを作成します:
import { createAuthrim } from '@authrim/web';
const auth = await createAuthrim({ issuer: 'https://auth.example.com', clientId: 'my-app',});この関数はブラウザプロバイダー(暗号、ストレージ、HTTPクライアント)を内部で初期化するため非同期です。アプリケーション起動時に一度呼び出し、返されたクライアントを再利用してください。
OAuth / OIDC を有効にする
OAuthの機能(ポップアップログイン、サイレント認証、クロスドメインSSO)を有効にするには enableOAuth: true を設定します:
const auth = await createAuthrim({ issuer: 'https://auth.example.com', clientId: 'my-app', enableOAuth: true,});
// auth.oauth が利用可能になりますawait auth.oauth.popup.login();クイックスタート:Passkeyログイン
Passkeyによるサインアップとサインインの最小限の例:
import { createAuthrim } from '@authrim/web';
// 1. 初期化const auth = await createAuthrim({ issuer: 'https://auth.example.com', clientId: 'my-app',});
// 2. 既に認証済みか確認const isLoggedIn = await auth.session.isAuthenticated();if (isLoggedIn) { console.log('既にサインイン済みです');}
// 3. Passkeyでサインアップ(新規ユーザー)const signUpResult = await auth.passkey.signUp({});if (signUpResult.error) { console.error('サインアップ失敗:', signUpResult.error.message);} else { console.log('ようこそ!', signUpResult.data.user);}
// 4. Passkeyでサインイン(既存ユーザー)const loginResult = await auth.passkey.login();if (loginResult.error) { console.error('ログイン失敗:', loginResult.error.message);} else { console.log('サインイン完了:', loginResult.data.user);}
// 5. サインアウトawait auth.signOut();クイックスタート:Email Code
// コード送信if (sendResult.error) { console.error(sendResult.error.message);}
// コード検証(ユーザーが受信したコードを入力)if (verifyResult.error) { console.error(verifyResult.error.message);} else { console.log('認証完了:', verifyResult.data.user);}クイックスタート:ソーシャルログイン
// Googleでポップアップログインconst result = await auth.social.loginWithPopup('google');if (result.error) { console.error(result.error.message);} else { console.log('Googleでサインイン:', result.data.user);}ストレージオプション
デフォルトでは、SDKは sessionStorage を使用して状態を保持します。変更可能です:
const auth = await createAuthrim({ issuer: 'https://auth.example.com', clientId: 'my-app', storage: { prefix: 'authrim', // キープレフィックス(デフォルト: 'authrim') storage: 'sessionStorage', // 'memory' | 'sessionStorage' | 'localStorage' },});| タイプ | 持続性 | セキュリティ | ユースケース |
|---|---|---|---|
memory | タブのみ(閉じると消去) | 最も安全 | 厳格なセキュリティが必要なSPA |
sessionStorage | タブセッション(タブを閉じると消去) | XSS耐性あり | ほとんどのアプリにおすすめ |
localStorage | 永続的(ブラウザ再起動後も保持) | XSS対策が必要 | 「ログイン状態を保持」シナリオ |
HTTPS要件
本番環境ではHTTPSが必要です。WebAuthn(Passkey)は安全でないオリジンでは動作しません。
- 本番環境: HTTPS必須
- 開発環境:
localhostと127.0.0.1ではHTTPが許可されます
次のステップ
- サンプルアプリ — 完全な動作サンプルのウォークスルー
- Passkey認証 — WebAuthnフローの詳細
- Email Code認証 — OTPベースのパスワードレスログイン
- ソーシャルログイン — Google、GitHub、Apple等