Firebase Authentication の iOS 導入手順【⑤メールアドレスの確認メール送信・パスワード再設定メール送信編】【SwiftUI】

②ユーザ登録編でメールアドレスとパスワードを使用したユーザーの新規登録を行いました。

ただ、createUser を実行するだけでは実際に有効なメールアドレスであるかの確認を行うことは出来ません

今回は、登録したメールアドレスの有効性を確認するメールを送信する方法を紹介します。

また、パスワードを失念してしまった場合のパスワード再設定メールの送信方法についても一緒に紹介します。

他の Firebase Authentication についての記事一覧は以下の通りです。

Firebase Authentication の iOS 導入手順【⑤メールアドレスの確認メール送信・パスワード再設定メール送信編】【SwiftUI】

(1) メールアドレスの確認メールを送信する

Auth.auth().currentUser?.sendEmailVerification { (error) in }

ログインしているユーザーのメールアドレスに対して送信が行われます。

②ユーザ登録編で紹介した createUser の実行後にメールアドレスを送信する例を示します。

Auth.auth().createUser(withEmail: self.mailAddress, password: self.password) { authResult, error in
    if let user = authResult?.user {
        user.sendEmailVerification(completion: { error in
            if error == nil {
                print("send mail success.")
            }
        }
    }
}

送信が成功していれば以下のような文面のメールが届きます。

リンクをクリックするとブラウザが開き以下のようなメッセージが表示されます。

この時点で、Auth.auth().currentUser で取得できるユーザー情報の isEmailVerifiedtrue になります。

この後、Auth.auth().signIn を行うことで、isEmailVerifiedtrue になります。

Auth.auth().signIn(withEmail: self.mailAddress, password: self.password) { authResult, error in
    if let user = authResult?.user {
        if user.isEmailVerified {
            print("メールアドレス確認済み")
        } else {
            print("メールアドレス未確認")
        }
    }
}

(2) パスワードの再設定メールを送信する

Auth.auth().sendPasswordReset(withEmail: email) { error in }

指定したメールアドレスにパスワード再設定のリンクが貼られているメールを送信します。

送信が成功していれば以下のような文面のメールが届きます。

リンクをクリックするとブラウザが開き以下のようなダイアログが表示されます。

これでパスワードをリセットすることが出来ます。

(3) メール文面の言語を変える

最後に、メールアドレスの確認メール、パスワード再設定メール共に、文面の言語を変える方法を紹介します。

以下は日本語の文面に変える例です。

Auth.auth().languageCode = "ja_JP"

予め、アプリの開始時に設定しておくと良いでしょう。

以上

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です