パスワードリセット
ユーザーがパスワードを忘れてしまった場合、パスワードをリセットできます。
パスワードリセットは、ログイン状態でなくても実行できます。パスワードリセットが実行されると、以前のパスワードでログインしていたユーザーのアクセストークンは無効化され、新たなパスワードを使った再ログインが必要な状態となります。
リセット後の新パスワード
パスワードリセット後に有効となる新パスワードは、以下のいずれかの方法で決まります。
- 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 引数に新しいパスワードを指定します。メソッドの実行が成功すると今までのパスワードはリセットされ、指定した新パスワードが有効になります。