Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

メール/パスワードユーザーの管理 - Kotlin SDK

項目一覧

  • 新規ユーザーの登録
  • 新しいユーザーのメールアドレスの確認
  • ユーザー確認方法の再試行
  • ユーザー確認メールの再送信
  • ユーザー確認機能の再試行
  • ユーザーのパスワードのリセット
  • パスワード リセット メールの送信
  • パスワードリセット機能の実行
  • ユーザーのログインまたはログアウト

Atlas App Services アプリでメール/パスワード プロバイダーを有効にすると、新しいユーザーを登録してログインすることで、クライアント コードからのユーザー認証を処理できるようになります。

新規ユーザーを登録するには、ユーザーが提供したメールとパスワードをapp.emailPasswordAuth.registerUser()に渡します。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking { // use runBlocking sparingly -- it can delay UI interactions
app.emailPasswordAuth.registerUser(email, password)
}

App Services でメール/パスワード プロバイダーを有効にするときは、確認方法を選択します。 App Services のメール/パスワード確認サービスは、メールまたはカスタム Atlas Function を通じてユーザーに取得できるトークンとトークン ID を提供します。 ユーザーを確認するには、そのトークンと tokenId をapp.emailPasswordAuth.confirmUser()に提供します。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking { // use runBlocking sparingly -- it can delay UI interactions
app.emailPasswordAuth.confirmUser(token, tokenId)
}

ユーザーを確認したら、メールまたはパスワード認証情報を使用してログインに進みます。

SDK は、ユーザー確認のメールを再送信したり、カスタム確認方法を再試行したりする方法を提供します。

確認メールを再送信します。 各 URL の確認トークンは30分後に期限切れになります。 ユーザーが期間内にリンクに従って確認しない場合は、新しい確認メールをリクエストする必要があります。

ユーザー確認メールを再送信するには、 app.emailPasswordAuth.resendConfirmationEmail()にユーザーのメールアドレスを指定します。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking { // use runBlocking sparingly -- it can delay UI interaction
app.emailPasswordAuth.resendConfirmationEmail(email)
}

カスタム ユーザー確認機能を再試行するには、 app.emailPasswordAuth.retryCustomConfirmation()にユーザーのメール アドレスを指定します。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking { // use runBlocking sparingly -- it can delay UI interaction
app.emailPasswordAuth.retryCustomConfirmation(email)
}

ユーザーのパスワードのリセットは複数段階のプロセスです。

  1. クライアント アプリで、ユーザーがパスワードをリセットするための UI を提供します。 その後、App Services App はメールを送信するか、カスタム関数を実行してユーザーの ID を確認できます。

  2. ユーザーの ID を確認した後、パスワード再設定リクエストを完了できます。

  3. パスワードのリセットが完了すると、ユーザーは新しいパスワードを使用してログできます。

希望するパスワード リセット方法の設定方法の詳細については、 App Services メール/パスワード認証 のドキュメントを参照してください。

ユーザーの ID を確認するためにパスワード リセット メールを送信するには、パスワード リセット メールを送信するようにアプリを設定する必要があります。

パスワード リセット プロセスを開始するには、 app.emailPasswordAuth.sendResetPasswordEmail()を呼び出します ユーザーのメールで許可されます。 App Services は、一意の URL を含むメールをユーザーに送信します。 ユーザーは30分以内にこの URL にアクセスする必要があります。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking { // use runBlocking sparingly -- it can delay UI interaction
app.emailPasswordAuth.sendResetPasswordEmail(email)
}

ユーザーがパスワード リセット メールの URL を訪問した後、 app.emailPasswordAuth.resetPassword()を呼び出します ユーザーのメール、新しいパスワード、一意の URL に記載された tokentokenIdで許可されます。

ユーザーが 30 分以内にパスワード リセット メールの URL にアクセスしない場合、 tokentokenIdは期限切れになります。 パスワードのリセット プロセスを再度開始する必要があります。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking { // use runBlocking sparingly -- it can delay UI interactions
app.emailPasswordAuth.resetPassword(token, tokenId, newPassword)
}

パスワードリセット機能 を実行するようにアプリを構成するときに、 app.emailPasswordAuth.colResetPasswordFunction()を呼び出したときに実行する関数を定義します。 SDK からの。 この関数は、ユーザー名、パスワード、および任意の数の追加引数を指定できます。 これらの引数を使用して、セキュリティの質問の回答やその他のチャレンジにユーザーがパスワード リセットを正常に完了するために渡す必要があるものなどの詳細を指定できます。

独自のパスワード リセット フローを定義する場合は、カスタム パスワード リセット機能を使用することをお勧めします。 For example, you might send a custom password reset email from a specific domain. または、メール以外のサービスを使用してユーザーの ID を確認することもできます。

Atlas App Services 側では、このメソッドを呼び出すときに実行されるカスタム パスワード リセット機能を定義します。 この関数は、次の 3 つのステータスのいずれかを返すことができます。

  • fail

  • pending

  • success

failステータスは SDK によってServiceExceptionエラーとして扱われます。 SDK callResetPasswordFunction()はクライアントにpendingまたはsuccessステータスを返しません。

ユーザーに本人確認を行うために追加の手順を実行したい場合、 App Services のパスワード リセット関数によりpendingが返されることがあります。 ただし、その戻り値は SDK のcallResetPasswordFunction()に渡されないため、クライアントアプリはpendingステータスを処理するために独自のロジックを実装する必要があります。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking { // use runBlocking sparingly -- it can delay UI interaction
app.emailPasswordAuth.callResetPasswordFunction(email, newPassword)
}

サーバー側関数により、カスタム メール プロバイダーを使用してメールが送信される場合があります。 または、SMS を使用して、テキスト メッセージでユーザーの ID を確認することもできます。

App Services パスワード リセット関数コンテキストで、 と にアクセスできます。 App ServicestokentokenId のパスワード リセット機能からこの情報を渡す と、Android のディープ リンク を使用してこれらの値をアプリに渡すことができます。 iOSの または ユニバーサル リンク 。その後、クライアントアプリケーションはresetPassword() を呼び出してパスワード リセット フローを完了できます。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking { // use runBlocking sparingly -- it can delay UI interactions
app.emailPasswordAuth.resetPassword(token, tokenId, newPassword)
}

App Services のパスワード リセット関数が関数内で追加の検証を行う場合、またはパスワードのリセットを試みる前にユーザーの ID を検証した場合は、 successを返すように App Services 関数を構成できます。 ただし、その戻り値は SDK のcallResetPasswordFunction()に渡されないため、クライアントアプリはsuccessステータスを処理するために独自のロジックを実装する必要があります。

この例では 関数を呼び出すと、パスワード リセット プロセス全体が実行されます。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking { // use runBlocking sparingly -- it can delay UI interaction
app.emailPasswordAuth.callResetPasswordFunction(email, newPassword, args)
}

ユーザーを登録したら、別の手順でユーザーをログインさせます。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking {
val emailPasswordCredentials = Credentials.emailPassword(email, password)
val user = app.login(emailPasswordCredentials)
}

認証されたユーザーをログアウトできます。

val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
runBlocking {
val user = app.login(credentials)
// ... work with logged-in user ...
// Ensure all local updates are uploaded
// before logging out
user.logOut()
}

戻る

ユーザーの作成と認証