パスワードリセット

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

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

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

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

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

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

パスワードのリセット

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

メールを利用

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

Swift:

  • do {
      // Send an email including a link for password reset.
      try KiiUser.resetPasswordSynchronous("user_123456@example.com", notificationMethod: KiiNotificationMethod.EMAIL)
    } catch let error as NSError {
      // Handle the error.
      return
    }
  • // Send an email including a link for password reset.
    KiiUser.resetPassword("user_123456@example.com", notificationMethod: KiiNotificationMethod.EMAIL) { (error) -> Void in
      if error != nil {
        // Handle the error.
        return
      }
    }

Objective-C:

  • NSError *error;
    
    // Send an email for password reset.
    [KiiUser resetPasswordSynchronous:@"user_123456@example.com"
                   notificationMethod:KiiEMAIL
                                error:&error];
    
    if (error != nil) {
      // Handle the error.
      return;
    }
  • // Send an email including a link for password reset.
    [KiiUser resetPassword:@"user_123456@example.com"
        notificationMethod:KiiEMAIL
                     block:^(NSError *error) {
                       if (error != nil) {
                         // Handle the error.
                         return;
                       }
                     }];

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

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

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

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

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

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

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

Swift:

  • let phoneNumber = "+81900011100"
    
    do {
      // Send an SMS message including a link for password reset.
      try KiiUser.resetPasswordSynchronous(phoneNumber, notificationMethod: KiiNotificationMethod.SMS)
    } catch let error as NSError {
      // Handle the error.
      return
    }
  • let phoneNumber = "+81900011100"
    
    // Send an SMS message including a link for password reset.
    KiiUser.resetPassword(phoneNumber, notificationMethod: KiiNotificationMethod.SMS) { (error) -> Void in
      if error != nil {
        // Handle the error.
        return
      }
    }

Objective-C:

  • NSError *error;
    NSString *phoneNumber= @"+81900011100";
    
    // Send an SMS message including a link for password reset.
    [KiiUser resetPasswordSynchronous:phoneNumber
                   notificationMethod:KiiSMS
                                error:&error];
    
    if (error != nil) {
      // Handle the error.
      return;
    }
  • NSString *phoneNumber= @"+81900011100";
    
    // Send an SMS message including a link for password reset.
    [KiiUser resetPassword:phoneNumber
        notificationMethod:KiiSMS
                     block:^(NSError *error) {
                       if (error != nil) {
                         // Handle the error.
                         return;
                       }
                     }];

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

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

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

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

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

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

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

Swift:

  • let phoneNumber = "+81900011100"
    
    do {
      // Send an SMS message including a PIN code for password reset.
      try KiiUser.resetPasswordSynchronous(phoneNumber, notificationMethod: KiiNotificationMethod.SMS_PIN)
    } catch let error as NSError {
      // Handle the error.
      return
    }
  • let phoneNumber = "+81900011100"
    
    // Send an SMS message including a PIN code for password reset.
    KiiUser.resetPassword(phoneNumber, notificationMethod: KiiNotificationMethod.SMS_PIN) { (error) -> Void in
      if error != nil {
        // Handle the error.
        return
      }
    }

Objective-C:

  • NSError *error;
    NSString *phoneNumber= @"+81900011100";
    
    // Send an SMS message including a PIN code for password reset.
    [KiiUser resetPasswordSynchronous:phoneNumber
                   notificationMethod:KiiSMS_PIN
                                error:&error];
    
    if (error != nil) {
      // Handle the error.
      return;
    }
  • NSString *phoneNumber= @"+81900011100";
    
    // Send an SMS message including a PIN code for password reset.
    [KiiUser resetPassword:phoneNumber
        notificationMethod:KiiSMS_PIN
                     block:^(NSError *error) {
                       if (error != nil) {
                         // Handle the error.
                         return;
                       }
                     }];

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

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

Swift:

  • let phoneNumber = "+81900011100"
    let pinCode = "123456"
    let passWord = "new_password_00"
    
    do {
      // Reset the password.
      try KiiUser.completeResetPasswordSynchronous(phoneNumber, pinCode: pinCode, password: passWord)
    } catch let error as NSError {
      // Handle the error.
      return
    }
  • let phoneNumber = "+81900011100"
    let pinCode = "123456"
    let passWord = "new_password_00"
    
    // Reset the password.
    KiiUser.completeResetPassword(phoneNumber, pinCode: pinCode, password: passWord) { (error) -> Void in
      if error != nil {
        // Handle the error.
        return
      }
    }

Objective-C:

  • NSError *error;
    NSString *phoneNumber= @"+81900011100";
    NSString *pinCode = @"123456";
    NSString *passWord = @"new_password_00";
    
    // Reset the password.
    [KiiUser completeResetPasswordSynchronous:phoneNumber
                                      pinCode:pinCode
                                     password:passWord
                                        error:&error];
    
    if (error != nil) {
      // Handle the error.
      return;
    }
  • NSString *phoneNumber= @"+81900011100";
    NSString *pinCode = @"123456";
    NSString *passWord = @"new_password_00";
    
    // Reset the password.
    [KiiUser completeResetPassword:phoneNumber
                           pinCode:pinCode
                          password:passWord
                             block:^(NSError * _Nullable error) {
                             if (error != nil) {
                               // Handle the error.
                               return;
                             }
                           }];

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

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

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