> ## 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.Androidでマジックリンクによるパスワードレス認証

# Lock.Android: マジックリンクによるパスワードレス認証

Androidアプリで、<Tooltip tip="パスワードレス: 最初の認証要素としてパスワードに依存しない認証の形式です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=passwordless">パスワードレス</Tooltip>認証のために送信されるワンタイムパスワードをユーザーに入力してもらう必要がないように、ユーザーがリンクをタップするだけで、手動で入力することなくログインできる機能を導入しました。

これらのリンクには、従来のパスワードレスフローで使用されるものと同じ**コード**が含まれていますが、正しく設定すれば、そのリンクから直接アプリケーションを開けます。

<div id="auth0-dashboard-configuration">
  ## Auth0 Dashboard の設定
</div>

[アプリケーション設定](https://manage.auth0.com/#/applications/\{yourClientId}/settings)に移動し、ページ下部にある **Show Advanced Settings** をクリックします。次に、「Device Settings」タブで、Android アプリケーションの Package Name と証明書の Key Hash の両方を入力する必要があります。

* **App Package Name**: これは、アプリの Manifest で宣言されている package 名です。`app/build.gradle` ファイルの `applicationId` 属性でも確認できます。両方の値が一致しない場合は、`applicationId` の値を使用してください。例: `com.example.android.myapp`
* **Key Hashes**: これらは Android アプリの署名証明書の SHA256 フィンガープリントです。カンマ区切りで複数指定できます。release と debug の keystore フィンガープリントはいずれもここに指定できます。取得方法については、以下のセクションで説明します。例: `DE:1A:5B:75:27:AA:48:D5:A6:72:2F:76:43:95:9B:79:C6:86:1A:5B:75:27:AA:48:D5:A6:73:FE`.

値を設定したら、必ず **変更を保存** をクリックしてください。

<div id="getting-your-signing-certificates-fingerprint">
  ### 署名証明書のフィンガープリントを取得する
</div>

次のコマンドを使用すると、Java の `keytool` CLI でフィンガープリントを生成できます。

`keytool -list -v -keystore my-release-key.keystore`

または、デフォルトのデバッグキーを取得します。

`keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android`

Auth0 Dashboard で必要な値は、"SHA256" として表示されるものです。キーストアについて詳しくは、この[公式記事](https://developer.android.com/studio/publish/app-signing)を参照してください。

<div id="enable-the-email-connection">
  ### Email 接続を有効にする
</div>

マジックリンクを使ったパスワードレスは、"email" タイプのパスワードレス接続でのみ機能します。Auth0 Dashboard の [認証](https://manage.auth0.com/#/applications/authentication) でパスワードレス接続に移動し、**Email** をクリックします。ポップアップが開き、HTML + Liquid のメールテンプレートを編集できるようになります。本文に次のような条件文が含まれていることを確認してください。

```liquid lines theme={null}
{% if send == 'link' or send == 'link_ios' or send == 'link_android' %}
Your verification link is: {{ link }}
{% elsif send == 'code' %}
Your verification code is: {{ code }}
{% endif %}
```

<div id="configuring-the-sdk">
  ## SDK の設定
</div>

Auth0アプリケーションの設定が完了したら、手順に従って、[パスワードレスのドキュメント](/docs/ja-jp/libraries/lock-android/lock-android-passwordless)を参照し、`Lock.Android` で PasswordlessLock を設定してください。

<div id="sdk-usage">
  ### SDK の使い方
</div>

Lock Passwordless は、ワンタイムパスワードを記載したメールを送信してユーザーを認証します。この場合は、`code` ではなくリンクが送信されます。Passwordless Classic のガイドに従っている場合は、`useCode()` の呼び出しを削除し、`useLink()` に置き換えるだけです。

最後に、アクティビティ内から `PasswordlessLock` ウィジェットを起動します。

```kotlin lines theme={null}
startActivity(lock.newIntent(this))
```

LINKをリクエストすると、次の画面に、ログインするにはそれをタップする必要があることが表示されます。何らかの理由でそれができない場合でも、受信したメール内のリンクをクリックした後に表示されるコードを入力してログインできます。

<div id="optional-use-android-app-links">
  ## オプション: Android App Links を使用する
</div>

Lock ライブラリは App Links に対応しています。これは Android 6.0 (API レベル 23) 以降で利用できる機能で、特定の種類のリンクに対して、アプリ自身をデフォルトのハンドラーとして指定できます。これにより、リンクを開く際にブラウザーとアプリのどちらを使うかをユーザーに確認する選択ダイアログは表示されません。

これは、ユーザーが Android のデバイス設定でその URI パターンを処理するデフォルトのアプリをまだ選択していない場合に機能します。

リンクの自動処理には、アプリと Auth0 のウェブサイトの連携が必要です。アプリはウェブサイトとの関連付けを宣言し、システムにその検証を要求する必要があります。一方、ウェブサイト側は、[Digital Asset Links](https://developers.google.com/digital-asset-links/) ファイルを公開して、その検証を行う必要があります。

Auth0 は、前述のように App Package Name と Key Hash を設定すると、[Digital Asset Links](https://developers.google.com/digital-asset-links/) ファイルを自動的に生成します。この記事のすべての手順に従っていれば、そのファイルは利用可能になっており、次回 Android アプリケーションがインストールされる際に検証されます。

App Links の詳細については、[Android ドキュメント](https://developer.android.com/training/app-links/index.html) を参照してください。
