電話番号(SMS)認証
電話番号(SMS)認証がオンの状態で電話番号を伴うアカウント作成処理が実行されると、Kii Cloud はこの電話番号宛てに認証コードを含む SMS を送信します。認証処理を完了するには、この認証コードをユーザーより受け取り、Kii Cloud に送信する必要があります。指定された電話番号によるログインは、この認証処理が完了するまで有効になりません。
なお、電話番号の認証がオンの状態で電話番号が変更された場合も、同様に新しい電話番号の認証処理が実行されます。新しい電話番号によるログインは、SMS 送信された認証コードを Kii Cloud に送信するまで有効になりません。認証が完了するとユーザーにその旨が通知されます(古い電話番号は認証処理が完了した時点で無効になります)。認証が完了していない保留中の電話番号は KiiUser.pendingPhoneNumber
プロパティで取得できます。
注意:電話番号は、+ と、国コードから始まる国際電話番号を指定してください。これにより Kii Cloud で SMS の宛先を決定できるようになります。上記以外の形式が指定された場合、本人認証用 SMS が正しく送信できないことがあります。
認証機能の有効化
認証機能のオン/オフは、開発者ポータルで設定します。設定方法は 認証機能のオン/オフ をご覧ください。
デフォルトでは認証機能はオフになっています。
認証コードの登録
SMS での認証用コード受信後、以下のようにverifyPhoneNumber
メソッドをコールして Kii Cloud に送信することで認証プロセスは完了します。
Swift:
-
// Get the currently logged-in user. let user = KiiUser.current()! do{ // Verify the phone number using a code sent via SMS. try user.verifyPhoneNumberSynchronous("12345") } catch let error as NSError { // Handle the error. return }
-
// Get the currently logged-in user. let user = KiiUser.current()! // Verify the phone number using a code sent via SMS. user.verifyPhoneNumber("12345", with: { (user :KiiUser?, error : Error?) -> Void in if (error != nil) { // Handle the error. return } })
Objective-C:
-
// Get the currently logged-in user. KiiUser *user = [KiiUser currentUser]; NSError *error; // Verify the phone number using a code sent via SMS. [user verifyPhoneNumber:&error withCode:@"12345"]; if (error != nil) { // Handle the error. return; }
-
// Get the currently logged-in user. KiiUser *user = [KiiUser currentUser]; // Verify the phone number using a code sent via SMS. [user verifyPhoneNumber:@"12345" withBlock:^(KiiUser *user, NSError *error) { if (error != nil) { // Handle the error. return; } }];
SMS テンプレートのカスタマイズ
Kii Cloud が送信する SMS の内容(テンプレート)はカスタマイズ可能です。
SMS テンプレートのカスタマイズは開発者ポータルで行います。メール/SMS テンプレートのカスタマイズ をご覧ください。
認証 SMS の再送信
認証リンク付き SMS はユーザーの登録や変更のタイミングで自動的に送信されますが、API によって再送することもできます。
ユーザー名などを使ってログイン状態にしてから、以下のように resendPhoneNumberVerificationSynchronous
メソッドを呼び出します。currentUser
メソッドの利用については、ログインユーザー情報の取得 をご覧ください。
Swift:
-
// Get the currently logged-in user. let user = KiiUser.current()! do{ // Resend a verification SMS message. try user.resendPhoneNumberVerificationSynchronous() } catch let error as NSError { // Handle the error. return }
-
// Get the currently logged-in user. let user = KiiUser.current()! // Resend a verification SMS message. user.resendPhoneNumberVerification { (user :KiiUser?, error : Error?) -> Void in if (error != nil) { // Handle the error. return } }
Objective-C:
-
NSError* error = nil; // Get the currently logged-in user. KiiUser* user = [KiiUser currentUser]; // Resend a verification SMS message. [user resendPhoneNumberVerificationSynchronous:&error]; if (error != nil) { // Handle the error. return; }
-
// Get the currently logged-in user. KiiUser* user = [KiiUser currentUser]; // Resend a verification SMS message. [user resendPhoneNumberVerificationWithBlock:^(KiiUser *user, NSError *error) { if (error != nil) { // Handle the error. return; } }];