APP誕生全紀錄 - 容易忽略的必要功能3:OAuth登入

閱讀時間約 3 分鐘
一個APP在規劃的時候可能覺得主要功能就只有這一兩個,實作起來應該不難,卻忘了現代人的胃口已經越養越大,很多不在你預期內但對於使用者來說卻是很基本的功能;另一種是商店上架或是第三方要求的必要功能
如果你還沒有閱讀過「APP誕生全紀錄」,建議可以先看一下,至少知道哪些可能是容易忽略的必要功能,我們提過了推播APP跳轉,今天我們來探討第三種必要功能:OAuth登入。

什麼是OAuth?

OAuth 是開放授權的標準協定,允許使用者讓第三方應用存取該使用者在某一網站上儲存的私密的資源(如相片,影片,聯絡人列表),而無需將使用者名稱和密碼提供給第三方應用。
經由大型第三方已經認證過的帳號,所以我們可以直接相信和確保這個帳號的獨有性和擁有權,避免讓使用者重複跑繁複的Email或電話...等等的註冊流程,簡化使用者的操作,可以大幅提升你的APP友善程度。

登入流程架構

登入流程架構圖
  1. 使用者端發出驗證需求給指定的第三方
  2. 第三方提供認證介面
  3. 使用者輸入第三方驗證資料
  4. 驗證成功將提供token給使用者端並跳轉回原APP (這時候已經可以使用token取得一些相關的使用者資料)
  5. 將token傳給Firebase Authentication做紀錄認證
其實如果沒有使用Firebase Authentication也是可以執行到第4步驟後,直接由使用者端設備做處理,但第5步驟透過Firebase做登入處理可以方便許多,一者可以用來驗證是否有權限使用Firebase的其他服務,e.g. FireStore、FireStorage...etc,再來之後如果沒有登出,都會由使用者端和Firebase Auth之間來做自動連線認證和紀錄,對於開發者來說方便了許多,而且Authentication的服務目前是免費的。

實作測試

我們利用flutter + google_sign_in + firebase_auth實作Google登入看看吧!
// Trigger the authentication flow
final GoogleSignInAccount? googleUser = await _auth.signIn();
if (googleUser == null) return false;

// Obtain the auth details from the request
final GoogleSignInAuthentication googleAuth =
await googleUser.authentication;

// Create a new credential
final credential = GoogleAuthProvider.credential(
  accessToken: googleAuth.accessToken,
  idToken: googleAuth.idToken,
);

//Firebase Auth
try{
 await FirebaseAuth.instance.signInWithCredential(credential);
} on FirebaseAuthException catch (e) {
  if (e.code == "account-exists-with-different-credential") {
   // Already have a different signin method
    return false;
  }
  return false;
}

總結

實作OAuth不會太過於困難,但卻是一個可以快速提升使用者體驗的驗證方式,不用猶豫了,快來為你的客戶們建立方便的使用者驗證吧!
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
3會員
7內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Amos的沙龍 的其他內容
一個APP在規劃的時候可能覺得主要功能就只有這一兩個,實作起來應該不難,卻忘了現代人的胃口已經越養越大,很多不在你預期內但對於使用者來說卻是很基本的功能;另一種是商店上架或是第三方要求的必要功能。今天我們來探討第二種必要功能:APP跳轉,透過一組文字連結能夠點選開啟APP並跳轉到正確功能頁面。
一個APP在規劃的時候可能覺得主要功能就只有這一兩個,實作起來應該不難,卻忘了現代人的胃口已經越養越大,很多不在你預期內但對於使用者來說卻是很基本的功能;另一種是商店上架或是第三方要求的必要功能。今天我們先來探討其中重要的一項:推播〔Push Notification。
「聖經種子」團隊當初在組成的時候,成員本就是散落在各地,因著我的邀請而聚集在一起。因為大家都在不同的城市,平日也有自己的工作,所以對於我們來說,該如何讓團隊中溝通討論順暢、設計協作合作順利、凝聚出向心力,就成了最大的課題。
今天當你完成了你心目中完美的作品,迫不及待的想要放到商店上讓大家下載使用,卻沒想到是噩夢的開始?!從上架前的審查,到上架後的各種問題浮現,讓你焦頭爛額了嗎?這裡和你分享一下4種在APP「上線期」會遇到的問題和解決方法,讓你上線沒煩惱。
很多人可能都想過要開發一款APP,雖然擁有許許多多創意的點子,但卻不知道該從何開始下手嗎?這篇文章將會分享一個實際從無到有、從創作開發到上線推廣的開發案例,讓你實際了解中間所有的過程、會踩到的問題點以及你可能從沒想過但開發中一定會遇到的困難處。
一個APP在規劃的時候可能覺得主要功能就只有這一兩個,實作起來應該不難,卻忘了現代人的胃口已經越養越大,很多不在你預期內但對於使用者來說卻是很基本的功能;另一種是商店上架或是第三方要求的必要功能。今天我們來探討第二種必要功能:APP跳轉,透過一組文字連結能夠點選開啟APP並跳轉到正確功能頁面。
一個APP在規劃的時候可能覺得主要功能就只有這一兩個,實作起來應該不難,卻忘了現代人的胃口已經越養越大,很多不在你預期內但對於使用者來說卻是很基本的功能;另一種是商店上架或是第三方要求的必要功能。今天我們先來探討其中重要的一項:推播〔Push Notification。
「聖經種子」團隊當初在組成的時候,成員本就是散落在各地,因著我的邀請而聚集在一起。因為大家都在不同的城市,平日也有自己的工作,所以對於我們來說,該如何讓團隊中溝通討論順暢、設計協作合作順利、凝聚出向心力,就成了最大的課題。
今天當你完成了你心目中完美的作品,迫不及待的想要放到商店上讓大家下載使用,卻沒想到是噩夢的開始?!從上架前的審查,到上架後的各種問題浮現,讓你焦頭爛額了嗎?這裡和你分享一下4種在APP「上線期」會遇到的問題和解決方法,讓你上線沒煩惱。
很多人可能都想過要開發一款APP,雖然擁有許許多多創意的點子,但卻不知道該從何開始下手嗎?這篇文章將會分享一個實際從無到有、從創作開發到上線推廣的開發案例,讓你實際了解中間所有的過程、會踩到的問題點以及你可能從沒想過但開發中一定會遇到的困難處。
你可能也想看
Google News 追蹤
當需要登入github、bitbucket、anydesk等需要2FA的應用時,會需要2FA進行登入驗證。如果有想讓多台手機都可以獲取OTP該怎麼做呢? 很簡單,只要在新增2FA裝置要掃描QR時,用所有的手機都掃過一次,之後再輸入一次OTP即可
Thumbnail
最近這兩天有許多國內、國外網友的 iPhone 都跳出了要求登入 Apple ID 的訊息, 但是仔細一看卻發現上面要求登入的 Apple ID 不是自己的帳號? 等於是 iPhone 跳出了別人的 Apple ID 並且要我輸入密碼登入? 這是什麼意思?我的 Apple ID 也會這樣出現在
Thumbnail
什麼是多因素驗證 (MFA)? 多因素驗證 (MFA) 是一種登入保護機制,需要使用者提供多個不同的驗證方式來確認身份。除了輸入密碼,使用者還可能需要: 輸入發送到手機的驗證碼 掃描指紋或面部 回答安全問題 這樣即使密碼被盜用,未經授權的用戶也很難登入帳戶。 為什麼需要多因素
Thumbnail
需求情境: 為了讓多人使用 App,必須有驗證程序,以識別特定使用者,存取各自擁有的資源。 解決方案: 引用 google 所提供的雲端服務平台 Firebase,其中有多種驗證功能可選用。基於個人對 google 的偏愛,決定先採用 google signin 的方法,實作 login lo
Thumbnail
iOS 18 新增了原生 App 上鎖和隱藏功能,可以在打開應用程式增加驗證身分和隱藏敏感程式,即使將手機借給他人,對方沒有密碼也無法打開已上鎖的 App。
Thumbnail
申請攜碼優惠前,先讓我們看看這些常見疑問! 攜碼需要準備的資料 身分證和健保卡或駕照 如果委託他人代辦,需攜帶雙方的身分證和健保卡或駕照,以及門號登記者的印章 公司戶申辦需要攜帶營業登記證、變更登記表(擇一)、負責人身分證和健保卡或駕照,以及公司大小章 是否需要先解約? 只要原電信業者的
在當今數位化快速發展的社會中,傳統的密碼驗證方法已逐漸顯露其局限性,如密碼遺忘、盜用以及安全漏洞等問題不斷。為解決這些問題,「FIDO(Fast Identity Online)認證」技術應運而生,旨在創造一個更安全、便利的網路認證環境。FIDO 認證不依賴傳統密碼,而是利用生物辨識技術如指紋、臉部
Thumbnail
最近碰到個神奇的需求,App啟動時,才要用firebase remoteConfig去決定初始畫面。該文章詳細介紹了在App啟動時如何利用firebase remoteConfig去決定初始畫面,以及解決在推播的情況下造成跳轉無效的問題。
Thumbnail
In today's digital age, a secure authentication system is a cornerstone for any online business.
Thumbnail
授權碼模式連線流程 用戶端請求自己的伺服器。 伺服器發現用戶沒登入,就導向認證伺服器。 認證伺服器顯示授權頁面,等待用戶授權。 用戶確認授權後,授權頁面會向認證伺服器請求授權碼。 用戶獲取授權碼。 用戶將授權碼傳給伺服器。 伺服器拿授權碼向認證伺服器取得token。 應用註冊
當需要登入github、bitbucket、anydesk等需要2FA的應用時,會需要2FA進行登入驗證。如果有想讓多台手機都可以獲取OTP該怎麼做呢? 很簡單,只要在新增2FA裝置要掃描QR時,用所有的手機都掃過一次,之後再輸入一次OTP即可
Thumbnail
最近這兩天有許多國內、國外網友的 iPhone 都跳出了要求登入 Apple ID 的訊息, 但是仔細一看卻發現上面要求登入的 Apple ID 不是自己的帳號? 等於是 iPhone 跳出了別人的 Apple ID 並且要我輸入密碼登入? 這是什麼意思?我的 Apple ID 也會這樣出現在
Thumbnail
什麼是多因素驗證 (MFA)? 多因素驗證 (MFA) 是一種登入保護機制,需要使用者提供多個不同的驗證方式來確認身份。除了輸入密碼,使用者還可能需要: 輸入發送到手機的驗證碼 掃描指紋或面部 回答安全問題 這樣即使密碼被盜用,未經授權的用戶也很難登入帳戶。 為什麼需要多因素
Thumbnail
需求情境: 為了讓多人使用 App,必須有驗證程序,以識別特定使用者,存取各自擁有的資源。 解決方案: 引用 google 所提供的雲端服務平台 Firebase,其中有多種驗證功能可選用。基於個人對 google 的偏愛,決定先採用 google signin 的方法,實作 login lo
Thumbnail
iOS 18 新增了原生 App 上鎖和隱藏功能,可以在打開應用程式增加驗證身分和隱藏敏感程式,即使將手機借給他人,對方沒有密碼也無法打開已上鎖的 App。
Thumbnail
申請攜碼優惠前,先讓我們看看這些常見疑問! 攜碼需要準備的資料 身分證和健保卡或駕照 如果委託他人代辦,需攜帶雙方的身分證和健保卡或駕照,以及門號登記者的印章 公司戶申辦需要攜帶營業登記證、變更登記表(擇一)、負責人身分證和健保卡或駕照,以及公司大小章 是否需要先解約? 只要原電信業者的
在當今數位化快速發展的社會中,傳統的密碼驗證方法已逐漸顯露其局限性,如密碼遺忘、盜用以及安全漏洞等問題不斷。為解決這些問題,「FIDO(Fast Identity Online)認證」技術應運而生,旨在創造一個更安全、便利的網路認證環境。FIDO 認證不依賴傳統密碼,而是利用生物辨識技術如指紋、臉部
Thumbnail
最近碰到個神奇的需求,App啟動時,才要用firebase remoteConfig去決定初始畫面。該文章詳細介紹了在App啟動時如何利用firebase remoteConfig去決定初始畫面,以及解決在推播的情況下造成跳轉無效的問題。
Thumbnail
In today's digital age, a secure authentication system is a cornerstone for any online business.
Thumbnail
授權碼模式連線流程 用戶端請求自己的伺服器。 伺服器發現用戶沒登入,就導向認證伺服器。 認證伺服器顯示授權頁面,等待用戶授權。 用戶確認授權後,授權頁面會向認證伺服器請求授權碼。 用戶獲取授權碼。 用戶將授權碼傳給伺服器。 伺服器拿授權碼向認證伺服器取得token。 應用註冊