はじめに
今さら聞けないFirebaseシリーズ第二弾は、Authentication(認証)の実装方法についてご紹介します。
Authenticationができること
・メール、パスワードを使ったユーザ管理、ユーザ認証
・OpenIDを使ったユーザ認証(Google/Twitter/facebook/Github)
今回は、メールとパスワードを利用したユーザ管理及びユーザ認証をやってみます。
やること
・Authenticationの導入方法について
・ユーザ登録、ログイン、ログアウトのサンプルコードのご紹介
やらないこと
・Firebaseの導入について
・会員登録画面、ログイン画面等の画面について
・エラーハンドリングについて
いざ、チャレンジ!
1. 前準備
1.1. Podfileを開いて、以下を追加する
pod 'Firebase/Auth'
1.2. ログイン方法を指定する
Firebase consoleのAuthenticationを開き、ログイン方法を指定します
今回は、メール、パスワードでの認証を指定する
2. 実装
2.1. ユーザ登録
ユーザ登録は、下記のとおりです。
let email = "hogehoge@gmail.com"
let password = "barbarbar"
FIRAuth.auth()?.createUserWithEmail(email, password: password) { (user, error) in
// ...
if let error = error {
//TODO : エラーハンドリング
print(error.code)
// 17007 : 登録済みのメール
// 17008 : メールの書式が間違っている
// 17026 : パスワードが短い(6文字以上)
// 17999 : メールまたは、パスワードが不正(空文字を指定した場合)
return
}
if let user = user {
print(user.uid)
print(user.email)
}
}
正しく会員登録ができると、管理画面上でもユーザを確認することができます。
最大で500ユーザまでのようです。(少ないですね。。)
2.2. ログイン
ログインは、下記のとおりです。
ログイン中にログインしても、エラーにはならないようです。
FIRAuth.auth()?.signInWithEmail(email, password: password) { (user, error) in
if let error = error {
//TODO : エラーハンドリング
print(error.code)
// 17009: パスワードが間違っている
// 17011: ユーザが存在しない
return
}
if let user = user {
print(user.uid)
}
}
2.3. ログアウト
ログアウトは、下記のとおりです。
ログアウト中にログアウトしても、エラーにはならないようです。
do{
try FIRAuth.auth()?.signOut()
}catch let error as NSError{
print(error)
}
まとめ
今回は、ユーザ登録、ログイン、ログアウトの実装方法について、ご紹介しました。
予め決められたクラスのメソッドを呼ぶだけなので、簡単に実装できて良いですね。