ユーザーがパスワードを忘れてしまった場合、パスワードをリセットできます。
パスワードリセットは、ログイン状態でなくても実行できます。パスワードリセットが実行されると、以前のパスワードでログインしていたユーザーのアクセストークンは無効化され、新たなパスワードを使った再ログインが必要な状態となります。
リセット後の新パスワード
パスワードリセット後に有効となる新パスワードは、以下のいずれかの方法で決まります。
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 テンプレートのカスタマイズ をご覧ください。
送信されたメール内のリンクをクリックした際の挙動は、開発者ポータルで設定した新パスワード指定方法により異なります。
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 内のリンクをクリックした際の挙動は、開発者ポータルで設定した新パスワード指定方法により異なります。
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 引数に新しいパスワードを指定します。メソッドの実行が成功すると今までのパスワードはリセットされ、指定した新パスワードが有効になります。