②ユーザ登録編でメールアドレスとパスワードを使用したユーザーの新規登録を行いました。
ただ、createUser を実行するだけでは実際に有効なメールアドレスであるかの確認を行うことは出来ません。
今回は、登録したメールアドレスの有効性を確認するメールを送信する方法を紹介します。
また、パスワードを失念してしまった場合のパスワード再設定メールの送信方法についても一緒に紹介します。
他の Firebase Authentication についての記事一覧は以下の通りです。
- ①基本設定編
- ②メールアドレス・パスワード認証によるユーザー登録編
- ③メールアドレス・パスワード認証によるログイン・ログアウト編
- ④メールアドレスとパスワードの更新編
- ⑤メールアドレスの確認メール送信・パスワード再設定メール送信編(本記事)
- ⑥ユーザーの再認証編
- ⑦Googleアカウントログイン編
- ⑧Apple アカウントログイン編
- ⑨ユーザープロフィール更新編
- ⑩匿名ログイン編
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 で取得できるユーザー情報の isEmailVerified が true になります。
この後、Auth.auth().signIn を行うことで、isEmailVerified が true になります。
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"
予め、アプリの開始時に設定しておくと良いでしょう。
以上