パスワードリセット

ユーザーがパスワードを忘れてしまった場合、パスワードをリセットできます。

パスワードリセットは、ログイン状態でなくても実行できます。パスワードリセットが実行されると、以前のパスワードでログインしていたユーザーのアクセストークンは無効化され、新たなパスワードを使った再ログインが必要な状態となります。

リセット後の新パスワード

パスワードリセット後に有効となる新パスワードは、以下のいずれかの方法で決まります。

  • Kii Cloud に自動生成させる(デフォルト動作)
  • ユーザーに指定させる

新パスワードの決定方法は開発者ポータルで設定します。新パスワードの指定方法の設定 をご覧ください。

パスワードのリセット

パスワードのリセットは、メールまたは SMS を使って行います。SMS を利用する場合、パスワードリセット用リンクを送信する方法と、パスワードリセット用の PIN コードを送信する方法が選択可能です。

メールを利用

第 1 引数に対象ユーザーの ID を指定して resetPassword メソッドを実行します。第 2 引数には KiiUser.NotificationMethod.EMAIL を指定します。なお、以下の例ではユーザーの ID として認証済みメールアドレスを利用していますが、ユーザー ID や認証済み電話番号を利用することもできます。

  • String email = "user_123456@example.com";
    
    try {
      // Send an email including a link for password reset.
      KiiUser.resetPassword(email, KiiUser.NotificationMethod.EMAIL);
    } catch (IOException e) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • String email = "user_123456@example.com";
    
    // Send an email including a link for password reset.
    KiiUser.resetPassword(email, KiiUser.NotificationMethod.EMAIL, new KiiCallback<Void>() {
      @Override
      public void onComplete(Void target, Exception e) {
        if (e != null) {
          // Handle the error.
          return;
        }
      }
    });

メソッドを実行すると、ユーザーのメールアドレスにパスワードリセット用 URL リンク付メールが送信されます。メールアドレスは認証済みである必要があります。認証済みでない場合はこの機能を使用できません。

パスワードリセットの際に送信されるメールの内容はカスタマイズ可能です。カスタマイズは開発者ポータルで行います。カスタマイズ方法は メール/SMS テンプレートのカスタマイズ をご覧ください。

送信されたメール内のリンクをクリックした際の挙動は、開発者ポータルで設定した新パスワード指定方法により異なります。

  • Kii Cloud に自動付与させる設定の場合:パスワードがリセットされ、自動生成された新パスワードがメールでユーザーに通知されます。

  • ユーザーに指定させる設定の場合:新パスワード入力用のページが表示されます。ユーザーが新パスワードを入力すると、今までのパスワードはリセットされ、指定した新パスワードが有効になります。

SMS を利用(リンクを送信)

第 1 引数に対象ユーザーの ID を指定して resetPassword メソッドを実行します。第 2 引数には KiiUser.NotificationMethod.SMS を指定します。なお、以下の例ではユーザーの ID として認証済み電話番号を利用していますが、ユーザー ID や認証済みメールアドレスを利用することもできます。

  • String phoneNumber = "+819012345678";
    
    try {
      // Send an SMS message including a link for password reset.
      KiiUser.resetPassword(phoneNumber, KiiUser.NotificationMethod.SMS);
    } catch (IOException e) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • String phoneNumber = "+819012345678";
    
    // Send an SMS message including a link for password reset.
    KiiUser.resetPassword(phoneNumber, KiiUser.NotificationMethod.SMS, new KiiCallback<Void>() {
      @Override
      public void onComplete(Void target, Exception e) {
        if (e != null) {
          // Handle the error.
          return;
        }
      }
    });

メソッドを実行すると、ユーザーの電話番号にパスワードリセット用 URL リンク付 SMS メッセージが送信されます。電話番号は認証済みである必要があります。認証済みでない場合はこの機能を使用できません。

パスワードリセットの際に送信される SMS の内容はカスタマイズ可能です。カスタマイズは開発者ポータルで行います。カスタマイズ方法は メール/SMS テンプレートのカスタマイズ をご覧ください。

送信された SMS 内のリンクをクリックした際の挙動は、開発者ポータルで設定した新パスワード指定方法により異なります。

  • Kii Cloud に自動付与させる設定の場合:パスワードがリセットされ、自動生成されたパスワードが SMS でユーザーに通知されます。

  • ユーザーに指定させる設定の場合:新パスワード入力用のページが表示されます。ユーザーが新パスワードを入力すると、今までのパスワードはリセットされ、指定した新パスワードが有効になります。

SMS を利用(PIN コードを送信)

第 1 引数に対象ユーザーの ID を指定して resetPassword メソッドを実行します。第 2 引数には KiiUser.NotificationMethod.SMS_PIN を指定します。なお、以下の例ではユーザーの ID として認証済み電話番号を利用していますが、ユーザー ID や認証済みメールアドレスを利用することもできます。

  • String phoneNumber = "+819012345678";
    
    try {
      // Send an SMS message including a PIN code for password reset.
      KiiUser.resetPassword(phoneNumber, KiiUser.NotificationMethod.SMS_PIN);
    } catch (IOException e) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • String phoneNumber = "+819012345678";
    
    // Send an SMS message including a PIN code for password reset.
    KiiUser.resetPassword(phoneNumber, KiiUser.NotificationMethod.SMS_PIN, new KiiCallback<Void>() {
      @Override
      public void onComplete(Void target, Exception e) {
        if (e != null) {
          // Handle the error.
          return;
        }
      }
    });

メソッドを実行すると、ユーザーの電話番号にパスワードリセット用 PIN コード付き SMS メッセージが送信されます。電話番号は認証済みである必要があります。認証済みでない場合はこの機能を使用できません。

次に、第 1 引数に対象ユーザーの ID、第 2 引数に入手した PIN コードを指定して completeResetPassword メソッドを実行し、パスワードをリセットします。

  • String phoneNumber = "+819012345678";
    String pinCode = "123456";
    String newPassword = "new_password_00";
    
    try {
      // Reset the password.
      KiiUser.completeResetPassword(phoneNumber, pinCode, newPassword);
    } catch (IOException e) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • String phoneNumber = "+819012345678";
    String pinCode = "123456";
    String newPassword = "new_password_00";
    
    // Reset the password.
    KiiUser.completeResetPassword(phoneNumber, pinCode, newPassword, new KiiCallback<Void>() {
      @Override
      public void onComplete(Void target, Exception e) {
        if (e != null) {
          // Handle the error.
          return;
        }
      }
    });

completeResetPassword メソッドの実行方法およびメソッド実行後の挙動は、開発者ポータルで設定した新パスワード指定方法により異なります。

  • Kii Cloud に自動付与させる設定の場合:第 3 引数には null を指定します(null ではない場合、値は無視されます)。メソッドの実行が成功するとパスワードはリセットされ、自動生成されたパスワードが SMS でユーザーに通知されます。

  • ユーザーに指定させる設定の場合:第 3 引数に新しいパスワードを指定します。メソッドの実行が成功すると今までのパスワードはリセットされ、指定した新パスワードが有効になります。