Lock認証パラメーター

ログインを開始するときには、オプションオブジェクトにパラメーターを追加して送信することができます。下の例では、'foo'と等しい値のあるstateパラメーターを追加します。

var options = {
  auth: {
    params: {state: 'foo'},
  }
};

Was this helpful?

/

上の例は、https://{yourDomain}/authorize?state=foo&...を使用してログインをトリガーすること類似しています。

パラメーターのscopedevicenoncestateに対応しています。

対応しているパラメーター

scope{string}

var options = {
  auth: {
    params: {scope: 'openid email user_metadata app_metadata picture'},
  }
};

Was this helpful?

/

スコープはさまざまな値に対応しています。JWTはすべてのAPI要求に送信されるため、できる限り小さくしておくことが賢明です。

Lockでデフォルトのscope値は、openid profile emailです。この最小のスコープ値は、Last time you logged in with(最終ログイン日)機能を正しく動作させるためには必須です。

Lockをローカルで実行する

Lockの初期化時に少なくともデフォルトのスコープ(openid profile email)を手動で指定しなかった場合、Webサイトがhttp://localhostまたはhttp://127.0.0.1から実行されている際には、ブラウザーコンソールに以下のエラーが表示されます。

Consent required.When using getSSOData, the user has to be authenticated with the following scope: openid profile email(同意が必要です。getSSODataを使用する場合、ユーザーはopenid profile emailのスコープで認証される必要があります)

このエラーは、アプリケーションを運用環境で実行している場合や、スコープにopenid profile emailを指定した場合には発生しません。詳細については、「ユーザーの同意とサードパーティーアプリケーション」をお読みください。

スコープの詳細については、スコープに関するドキュメントのページを参照してください。

例:トークンを取得する

Lockでユーザーのプロファイルデータを取得できるトークンを受け取りたい場合には、scopeパラメーターを追加する必要があります。

var options = {
  auth: {
    params: {
        scope: 'openid profile'
    }
  }
};

Was this helpful?

/

LockにはconnectionScopes構成オプションもあり、任意の接続を特定してスコープを指定することができます。これは、スコープのセット(ダッシュボードで定義済み)で始めてから、後で特定の接続に追加の権限や属性を要求したい場合に便利です。詳細については、「Lock構成オプション」をお読みください。

state {string}

stateパラメーターには任意の状態値が設定され、リダイレクト間で維持されます。XSRF攻撃の軽減や、認証プロセスが完了した後で必要になるかもしれない任意のコンテキスト情報(リターンURLなど)に便利です。カスタムの状態パラメーターが提供されない場合には、Lockが自動的に生成します。詳細については、「Stateパラメーター」を参照してください。

nonce {string}

nonceパラメーターはリプレイ攻撃を防ぐために使用され、カスタム値が提供されない場合にはLockが自動的に生成します。

device {string}

deviceパラメーターは、認証を要求しているデバイスやブラウザーの名前を設定します。