Skip to main content
Lock では、ユーザーにワンタイムパスワードを記載した Email または SMS を送信し、ユーザーがそのパスワードを入力して確認することでログインできるようにします。これは、WhatsApp の認証方法に似ています。この記事では、Lock.Android ライブラリを使用してコードを送信する方法を説明します。 同様の結果は、ユーザーがクリックしてパスワードレス認証を自動的に完了できるリンクを送信することでも実現できますが、追加の設定手順がいくつか必要です。 ユーザーを認証できるようにするには、アプリケーションで Email/SMS 接続を有効にし、Auth0 Dashboard で設定しておく必要があります。

コードを使ったパスワードレスの実装

SDK の設定

app/build.gradle ファイルに、Auth0 Domain と Auth0 Scheme のプロパティ用の Manifest Placeholders を追加してください。これらは、認証結果を受け取る intent-filter を登録するために、library の内部で使用されます。
これらの値は、後でコードから参照できる文字列リソースとして strings.xml ファイルに追加しておくのが一般的です。

SDK の使用方法

Lock を呼び出す予定の アクティビティ で、アプリケーションの情報を使って Auth0 のインスタンスを作成します。最も簡単なのは、Android Context を渡して作成する方法です。これにより、あらかじめ strings.xml ファイルで定義した値が使用されます。これを機能させるには、文字列リソースを上記の一覧と同じキーで定義する必要があります。
ユーザー認証イベントを処理する AuthenticationCallback の実装を定義します。認証に成功した場合に返される Credentials オブジェクトには、最終的にアプリケーションまたは API が利用するトークンが含まれます。詳しくは、Tokens を参照してください。
Builder クラスを使用して新しい Lock インスタンスを準備し、設定します。アカウントの詳細と、上で宣言したコールバック実装を指定してください。、scope、利用可能な接続などの値もここで設定できます。設定が完了したら、Lock インスタンスを構築します。このインスタンスは再利用することを前提としており、不要になったら破棄する必要があります。これを行うのに適した場所は、アクティビティの onDestroy メソッドです。 以下のサンプルでは、useCode() メソッドを呼び出して、Lock がユーザーのメールアドレスまたは電話番号に コード を送信するようにしています。
最後に、アクティビティ内から PasswordlessLock ウィジェットを起動します。
有効になっているパスワードレス接続に応じて、Lock は コード を Email または SMS で送信します。利用可能な場合は、まず ‘email’ 接続が選択されます。次に、ユーザーは確認ステップで コード を入力する必要があります。その値がサーバーで期待されているものと一致すれば、認証は成功します。