> ## 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 オブジェクトに追加することでパラメーターを送信できます。以下の例では、値 `'foo'` の `state` パラメーターを追加しています。

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

上記の例は、`https://{yourDomain}/authorize?state=foo&...` でログインを開始する場合に相当します。

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

<div id="supported-parameters">
  ## サポートされているパラメーター
</div>

### scope {string}

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

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

Lock のデフォルトの `scope` 値は `openid profile email` です。この最小限のスコープ値は、**前回ログインに使用した方法** 機能を正しく動作させるために必要です。

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

スコープの詳細については、[スコープのドキュメントページ](/ja/docs/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` という設定オプションもあり、特定の接続ごとにスコープを指定できます。これは、最初は一連のスコープ (Dashboard で定義) で開始し、その後で特定の接続に対して追加の権限や属性をリクエストしたい場合に便利です。詳しくは、[Lock Configuration Options](/ja/docs/libraries/lock/lock-configuration) ページを参照してください。

### state {string}

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

### nonce {string}

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

### device {string}

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