> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 認証パラメータの設定に関する Lock のドキュメント。

# Lock の認証パラメータ

ログインを開始するときに、options object にパラメータを追加して送信できます。以下の例では、`state` パラメータに `'foo'` という値を追加しています。

```js lines theme={null}
var options = {
  auth: {
    params: {state: 'foo'},
  }
};
```

上記の例は、`https://{yourDomain}/authorize?state=foo&...` でログインを開始するのと同等です。

次のパラメータがサポートされています：`scope`、`device`、`nonce`、`state`。

<div id="supported-parameters">
  ## サポート対象のパラメータ
</div>

### スコープ {string}

```js lines theme={null}
var options = {
  auth: {
    params: {scope: 'openid email user_metadata app_metadata picture'},
  }
};
```

`scope` で使用できる値はいくつかあります。<Tooltip tip="JSON Web トークン (JWT): 2 者間でクレームを安全に表現するために使用される標準的な ID トークン形式（多くの場合、アクセストークン形式としても使用されます）。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=JWTs">JWTs</Tooltip> は API へのすべてのリクエストで送信されるため、できるだけ小さくしておくことをおすすめします。

Lock のデフォルトの `scope` 値は `openid profile email` です。この最小限のスコープ値は、**Last time you logged in with** 機能を正しく動作させるために必要です。

<Card title="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`

  アプリケーションを本番環境で実行している場合、または `openid profile email` スコープを指定している場合は、この問題は**発生しません**。詳しくは、[ユーザーの同意とサードパーティアプリケーション](/docs/ja-jp/get-started/applications/third-party-applications/user-consent-and-third-party-applications) のドキュメントを参照してください。
</Card>

スコープの詳細については、[scopes のドキュメントページ](/docs/ja-jp/get-started/apis/scopes) を参照してください。

<div id="example-retrieve-a-token">
  #### 例: トークンを取得する
</div>

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

```js lines theme={null}
var options = {
  auth: {
    params: {
        scope: 'openid profile'
    }
  }
};
```

Lock には `connectionScopes` という設定オプションもあり、これを使うと特定の接続に対するスコープを指定できます。これは、最初は一連のスコープ (ダッシュボードで定義) で開始し、後から特定の接続に対して追加の権限や属性を要求したい場合に便利です。詳しくは、[Lock Configuration Options](/docs/ja-jp/libraries/lock/lock-configuration) ページを参照してください。

### state {string}

`state` パラメーターは、リダイレクト後も維持される任意の state 値です。[XSRF 攻撃](https://en.wikipedia.org/wiki/Cross-site_request_forgery)の軽減や、認証プロセスの完了後に必要になる可能性がある [戻り先の URL](/docs/ja-jp/authenticate/login/logout/redirect-users-after-logout) などのコンテキスト情報の保持に役立ちます。カスタムの state パラメーターが指定されていない場合は、Lock が自動的に生成します。詳しくは、[State Parameter](/docs/ja-jp/secure/attack-protection/state-parameters) を参照してください。

### nonce {文字列}

`nonce` パラメータはリプレイ攻撃の防止に使用され、カスタム値が指定されていない場合は Lock によって自動的に生成されます。

### device {string}

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