iT邦幫忙

0

GOOGLE 第三方登入

請問我用GOOGLE做了一個第三方登入系統,我取得了使用者ID,她下次登入時,我應該ID拿它來當作驗證使用者是否已經有此帳號的依據嗎?還是我用email當作驗證機制就好

2 個回答

2
浩瀚星空
iT邦超人 1 級 ‧ 2019-07-25 16:23:22

認真來說,你會問這樣的問題有點匪夷所思。

無論是google、fb或是其它的第三方登入。大多數都是採用 oauth 的認証方式。
也就是說,當你的user還未取得其認証的驗証數據之前。其一般是會自動轉完該第三方的登入模式。

簡單來說,所謂的 email認証,絕對不是透過你的程式來處理的。而是運用其第三方的登入機制來處理。你的程式只需要記錄驗証的資料,如token及對應的id(詳細參數還請參照各第三方的sdk或api文件)。並接收第三方給你的資料核對是否可以登入完成。

講白一點,我們今天的第三方登入,是要確保其為第三方的身份。這並不是單單的記錄email就好。
你最好還是詳細看完其api的寫法吧。不要搞混其機制。而跑出用email認証的天外之語出現。

ps:正統的確定登入的驗証,除了id之外,最好連對應的驗証碼也得要儲存下來。因為id是單純的數值而已,且也並非是隱藏的資料。很容易被偽照處理。讓你的門戶大開。
為何會這樣說,因為id無論是在任何站,同一個帳號一定都是一樣的。只有其token是各站各自生成不同的驗証。

豬豬人 iT邦新手 5 級 ‧ 2019-07-25 16:52:01 檢舉

我想我表達得有點錯誤,因為我只是想確認他是否已經存在我的資料庫中,如果有,我就不用再新增會員資料了。但我不確定google ID 是不是這樣使用的

就如我上面說的,當你針對第一次登入的會員,第三方會給你對應的key值跟id讓你儲存。俅只要去核對這個key跟id就行。

且這個動作並不是第三方幫你做的。第三方只是幫你做驗証核對動作而已。後續的動作決定權是在你身上。

基本上,我建議你先看完api的文件後,再來決定要來問什麼。
因為你現在的質疑點,可以確定你根本還不懂且也沒看api。
要不然你不會出現這種怪怪的問題。
先去看完且試做一下,你就會了解你問的問題是有多麼奇怪了。

第三方(GOOGLE、FACEBOOK......)登錄,只會給你一個ID或會員名稱,不會給你完整的會員資料,你要做快速登錄,需再讓會員完備資料才行(就像IT邦)

0
混水摸魚
iT邦研究生 5 級 ‧ 2019-07-26 16:49:37

這個給你參考參考:https://www.webteach.tw/?p=515
雖然是FB範例,但原則是一樣的,都是取得第三方登入的email,唯一跟google登入的差別是,FB 登入若有未驗證email的你就取不到該email。

我要發表回答

立即登入回答