とがみんブログ
大学院の中退を決断し、徹底的に自分と向き合い就職活動をする中で、心理学や脳科学に興味を持つ。挙げ句の果てに、この世界の仕組みにも興味を持つ。そんなとがみんの考えや経験を綴ったブログです。
swift

【Swift4】FirebaseAuthを用いたユーザー認証機能の実装

どうも。とがみんです。

現在セブ島のNexSeedというプログラミングと英語を勉強できる学校で、エンジニア留学卒業後、ティーチングアシスタントとして、インターンをしています。

>エンジニア留学|NexSeed

生徒が作りたいアプリを開発するにあたって、つまりそうな点や必要な機能を先回りして実装して、ヒントをあげたり、一緒に考えたり、授業として解説したりしています。

今回は、FirebaseAuthを用いた、ユーザー認証の機能の実装について説明します。

Firebase Authとは

Firebase Authは、ユーザーの管理を行ってくれるFirebaseの機能です。「Auth」とは、日本語で「認証」という意味があります。

TwitterやFacebook、Instagram等のSNSアプリを使用する際、誰が投稿したか誰がコメントしたか、誰が今ログイン状態にあるのかなど、ユーザーごとにデータを管理する必要があります。

そのために、ユーザー本人かどうかを確認する必要があり、

確認するための一連の流れを「Auth」と言います。

Firebaseとアプリの連携

Firebaseとの連携方法は以下の記事に書いています。一箇所だけ違う点として、Podfileに以下のように記入します。

>【swift4】Firestoreを利用した簡易ToDoアプリの作成

 

以上のフレームワークをインストールし、後は同じようにしてFirebaseとの連携は完了です。

スポンサードリンク

EmailとPasswordによるログイン機能の実装

Firebaseのコンソールから、Auth > ログイン方法を選択し、メール/パスワードを有効にします。

新規登録の処理

新規登録ボタンを押した時に、実行される部分に、以下のコードを記述します。登録する際にエラーが出れば、それを表示し、成功すれば、登録したメールアドレスが、コンソールに表示されるようになっています。

 

ログインの処理

ログインボタンを押した時に、実行された部分に、以下のコードを記入します。ログイン時にエラーが出れば、それを表示し、成功すれば、登録したメールアドレスが表示されるようになっています。

 

Googleログイン機能の実装

GoogleのGmailを利用したログイン機能の実装について説明します。

Firebaseのコンソールから、Auth > ログイン方法を選択し、Googleを有効にします。プロジェクトのサポートメールを入力し、保存します。

これでGoogleが有効になります。

そして、Podfileに以下のフレームワークを追加し、pod installインストールします。

 

URLスキームを設定する

URLスキームとは、ネットワーク上の位置(アドレス、ある情報がどこにあるのか)を示す手段であり、これを指定することでアプリ間の連携が可能になります。

以下の操作で、アプリとGoogleを紐付けます。

プロジェクトのInfoURLTypesURL SchemesGoogleService-Info.plistREVERSED_CLIENT_IDを追加します。

AppDelegateを修正

以下のコードを追加し、先ほどURLスキームに登録したURLを開き、サインインに関するデータを受け取ります。

 

Googleサインインのボタン追加

LoginViewController.swiftに以下を追加します。

 

Googleログイン時の処理

以下がGoogleログインのボタンが押された後に動作する関数です。

Googleからトークンを受け取ったら、それらをFirebaseへ保存する処理を書きます。

ログイン失敗時の処理を記入します。

これでGoogleログインができます。

Twitterログイン機能の実装

TwitterAPI取得

Twitterログイン機能を実装するには、TwitterのAPIを取得する必要があります。API取得の方法については、以下の記事に詳しく書いてあるので、そちらを見て取得してください。

>【2018】Twitter・APIの取得審査が厳しい!取得方法を分かりやすく解説。

Twitterログインの有効化

Firebaseのコンソールの、Auth >ログイン方法からTwitterログインを有効化し、TwitterのAPIキーと、APIシークレットキーを入力し、保存します。

>[Swift版] 今さら聞けないFirebase③ Authentication (認証) Twitter 編

これで、Twitterログインが有効になります。

Twitterログインのコード

Podfileに以下を追加し、pod installします。

Googleログインの時と同様にTwitterのURLスキームの設定を追加します。

フレームワークの追加と、AppDelegate.swiftdidFinishLaunchingWithOptionsに以下を追加し、TwittterKitの初期設定をします。

ここでTwitterアプリの ConsumerKey、ConsumerKeySecret の情報を渡します。

次にLoginViewController.swiftに以下を追加。Twitterログインのボタンと、ボタンを押した時の処理を記述します。

Twitterからトークンを受け取り、Firebaseに登録します。

GitHub

作成したサンプルはGitHubにあげています。参考にしてください。

https://github.com/togamin/LoginSample.git

まとめ

Emailとパスワードを用いたログイン方法に加え、Googleログイン、Twitterログインの方法について説明しました。

また、下記がインターンをしているNexSeedという「プログラミング×英語」の勉強ができるセブにある学校です。

起業志向の人や、フリーランスを目指す人等、意識の高い人が多く、自分も良い刺激をもらっています。

留学を考えているけど、英語だけじゃ物足りないと感じる人、起業やフリーランスとして働くことを見据えている人は是非見てみてください!

参考サイト

>[iOS 11] Social.framework廃止に伴い、アプリにTwitter機能を実装する方法

>SwiftでTwitterのOAuth認証を使ってログインする方法のまとめ

>Firebase の Auth 機能を使ってみる。Swift版

>iOS で Google ログインを使用して認証する

スポンサードリンク