Lock のインストール
インストール方法
npm install auth0-lock
bower でインストールします。
bower install auth0-lock
CDN 経由で読み込みます (.x と .y は、Lock GitHub repository にある最新のマイナーおよびパッチのリリース番号に置き換えてください) 。
最新のマイナーリリース:<script src="https://cdn.auth0.com/js/lock/11.x/lock.min.js"></script>最新のパッチリリース:
<script src="https://cdn.auth0.com/js/lock/11.x.y/lock.min.js"></script>
本番環境のアプリケーションでは、特定のパッチバージョン、少なくとも特定のマイナーバージョンを使用することを推奨します。Lock をどの方法で読み込む場合でも、バージョンは固定し、更新は手動でのみ行うことをおすすめします。これにより、更新によって実装に悪影響が及ぶのを防げます。現在のリリース一覧は、GitHub repository を確認してください。
モバイル
head に次のメタタグを追加することを推奨しています。
<meta name="viewport" content="width=device-width, initial-scale=1"/>
依存関係のバンドル
auth0-lock モジュールをインストールした後、それもすべての依存関係とあわせてバンドルする必要があります。Browserify と webpack の例を参照してください。
クロスオリジン認証
使用状況
Step 1. Lock を初期化する
Auth0Lock オブジェクトを初期化し、Auth0 の (Auth0 アプリケーションごとに固有のクライアント ID で、管理ダッシュボード から確認できます) と Auth0 のドメイン (例: yourname.auth0.com) を指定する必要があります。
ステップ 2. 認証してユーザー情報を取得する
on メソッドを使って authenticated イベントを監視します。イベントが発生したら、受け取った accessToken を使って getUserInfo メソッドを呼び出し、必要に応じてユーザーのプロファイル情報を取得します。
その後、ページの内容を操作して、ユーザーにプロファイル情報を表示できます (たとえば、ウェルカムメッセージに名前を表示するなど) 。
<h2>Welcome <span id="nick" class="nickname"></span></h2>
ユーザープロファイルを保存する場合は、プロファイルオブジェクトを JSON.stringify しておき、あとで使用するときに JSON.parse する必要がある点に注意してください。これは、localStorage には JSON オブジェクトではなく文字列として保存する必要があるためです。
ステップ 3. Lock を表示する
lock.show(); を使えば、そのページにアクセスしたときに自動的に Lock を表示することもできます。
これで Lock ウィジェットが表示され、上記の設定と組み合わせれば、ログインを処理する準備は完了です!
パスワードレス
Auth0Lock ではなく Auth0LockPasswordless を使用して、通常とは少し異なる方法で Lock を初期化します。
パスワードレスのオプション
allowedConnections オプションに email または sms を値として指定して Lock を初期化します。
email を使用する場合は、さらにもう 1 つ選択肢があります。ユーザーに入力用のコードを受け取ってもらうか、それとも「マジックリンク」を受け取ってもらうかを選べます。これは passwordlessMethod オプションで設定し、値には code または link を指定します。
パスワードレスの使用例
埋め込み認証でのシングルサインオン
- SSO を試みるアプリケーションは、ファーストパーティアプリケーションである必要があります。サードパーティアプリケーションとの埋め込みセッションの共有はサポートされていません。
- アプリケーションと Auth0 テナントが、カスタムドメインを介してトップレベルドメインを共有している必要があります。デフォルトでは、Auth0 のドメインは
example.auth0.com形式です。カスタムドメインを使用すると、アプリケーションと Auth0 テナントで同じトップレベルドメインを共有でき、CSRF 攻撃の防止にも役立ちます。
エラーコードと説明
/co/authenticate エンドポイントが使用され、このエンドポイントでは次のエラーが返されます。
エラーの説明は人が読める形式です。コードで解析するべきではなく、また、内容はいつでも変更される可能性があります。