Angular + Firebase Authentication
Firebae 的功能非常完整,包括上一篇的主要功能 Datebase,還有內建登入系統,Hosting,甚至還有機器學習的工具,真不愧是在 Google 名下的服務。
這篇會將 Angular 加入 Authentication 的功能,而我們只會操作最通用的 Google Login。
Firebase 啟用登入驗證
這篇會將 Angular 加入 Authentication 的功能,而我們只會操作最通用的 Google Login。
Firebase 啟用登入驗證
接著會看到下圖各種可供選擇的登入方式。
點選 Google,啟用他
Angular設置
操作檔案基本上是延續上一篇,Angular+Firestore 的,
這裡引入驗證的 Module
同時 @NgModule 中也一定要引入的
再回到 app.component.ts
引入
很簡單將 Auth 的 Module 引入
再把它加入 constructor,
再來就是加入登入登出的功能了,
localStorage 是我額外加入的,不用加入也沒有關係。
開啟 app.component.html,加入登入登出的按鈕,這裡只有簡單的邏輯,點選 Login 按鈕觸發剛剛的 login(),Logout 亦然。而會由一個 *ngIf 判斷此時是否登入中,決定顯示哪個按鈕。
There you go! 你看到這登入按鈕了嗎,點下去!
咦?! 怎麼好像閃了一下登入視窗,結果什麼反映都沒有,不知道發生甚麼時,就按下F12,開啟"檢查"工具。
這邊錯誤提示說明,這個網址並未驗證執行此操作。
這時,我們需要回到 Firebase 的 Authentication 畫面,往下滑會看到 Authorized domain 的區域,點選 Add domain。
輸入你的網址名稱。
再回去重新登入一次吧!你會看到有了,跳出登入視窗了。
登入完成!你會發現登入按鈕變成登出了。
讓我們再回到 Authentication,這次點擊 Users,將會看到多了一名使用者喔,就是你!
是不是非常簡單呢?
而在登入的同時,也可以再多寫些 function,將使用者一些基本資料存入 database 喔!
是不是完整的體會到,這就是 firebase 強大之處了呢!
Angular + Firebase 系列文章:
點選 Google,啟用他
Angular設置
操作檔案基本上是延續上一篇,Angular+Firestore 的,
這裡引入驗證的 Module
import { AngularFireAuthModule } from '@angular/fire/auth';
同時 @NgModule 中也一定要引入的
AngularFireAuthModule
再回到 app.component.ts
引入
import { AngularFireAuth } from '@angular/fire/auth'; import * as firebase from 'firebase/app';
很簡單將 Auth 的 Module 引入
再把它加入 constructor,
private afAuth: AngularFireAuth
再來就是加入登入登出的功能了,
async login() { const provider = new firebase.auth.GoogleAuthProvider(); const credential = await this.afAuth.auth.signInWithPopup(provider); } logout() { this.afAuth.auth.signOut(); }
localStorage 是我額外加入的,不用加入也沒有關係。
開啟 app.component.html,加入登入登出的按鈕,這裡只有簡單的邏輯,點選 Login 按鈕觸發剛剛的 login(),Logout 亦然。而會由一個 *ngIf 判斷此時是否登入中,決定顯示哪個按鈕。
<div *ngIf="afAuth.authState | async; let user; else showLogin" class="GoogleSignInButton"> <button (click)="logout()" mat-flat-button color="warn"> Logout </button> </div> <ng-template #showLogin> <div class="GoogleSignInButton"> <button (click)="login()" mat-flat-button> <img width="20px" alt="Google "G" Logo" src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Google_%22G%22_Logo.svg/512px-Google_%22G%22_Logo.svg.png"/> Login with Google </button> </div> </ng-template>
There you go! 你看到這登入按鈕了嗎,點下去!
咦?! 怎麼好像閃了一下登入視窗,結果什麼反映都沒有,不知道發生甚麼時,就按下F12,開啟"檢查"工具。
這邊錯誤提示說明,這個網址並未驗證執行此操作。
這時,我們需要回到 Firebase 的 Authentication 畫面,往下滑會看到 Authorized domain 的區域,點選 Add domain。
輸入你的網址名稱。
再回去重新登入一次吧!你會看到有了,跳出登入視窗了。
登入完成!你會發現登入按鈕變成登出了。
讓我們再回到 Authentication,這次點擊 Users,將會看到多了一名使用者喔,就是你!
是不是非常簡單呢?
而在登入的同時,也可以再多寫些 function,將使用者一些基本資料存入 database 喔!
是不是完整的體會到,這就是 firebase 強大之處了呢!
Angular + Firebase 系列文章:
張貼留言