Re: [問題] 以Facebook帳號登入app的問題
※ 引述《kiii210 (Johnny.T)》之銘言:
: 各位前輩好~想請問一下關於用Facebook賬號來登入app的問題~
: 現在很多app已經用這個方法,直接用使用者的Facebook姓名,mail來註冊一個賬號
: 省去很多填資料的麻煩~
我不清楚你的app是否會用到facebook的功能(分享文章等),
我下面的回答是假設你都不會用到除了登入之外的功能。
: 目前公司網站已有做Facebook登入功能,
: 用Facebook帳號登入之後,會把姓名,Mail存起來當做一個會員~
: 現在公司app也打算用這個方法,網站跟app的資料要互通~
: 目前想到的做法是這樣:http://ppt.cc/-UEt
: 1. 點擊Facebook登入
: 2. 登入成功,取得access_token
: 3. 傳回給伺服器,由伺服器處理註冊賬號的動作
: 疑問:
: 1) 這中間是否會有安全性的問題?因為拿到token就等於有帳號的存取權限
: 是否該透過https加密後送出?
fb給的access_token極度建議用https傳送回給自己。
不過安全性的問題的話..depends on 你要的權限,若你僅要求最基本的權限(拿fbid),
基本上不會對使用者的fb造成什麼事情,不過若用一般http傳輸,
會讓駭客有可能用別人的帳號,進入你們的服務。
: 2) 安全性問題2
: 開發網站的同事擔心有心人拿到app與伺服器溝通的api網址後會亂搞,
: 目前想法:傳access_token給伺服器之後,由伺服器拿去與Facebook Graph Api驗證
: https://graph.facebook.com/me/?access_token=
: 如果回傳的verified是true,代表這個使用者沒問題,可以放心的做溝通
: 反之拒絕回傳資料。(http://ppt.cc/HBEU)
: 這樣是否可以?
大致看起來可以,不過再次強調,與你們server的溝通建議用https。
: 3) 該如何保持"登入狀態"?
: 開發網站的同事表示不想每次都跟Facebook驗證token是否有效,
: 那我是不是在跟api做溝通的時候把cookie存在UserDefaults裡面,
: 待下次跟api做溝通把cookie也一併送出去即可?
: 感謝耐心看完~因為沒開發這方面的經驗~網路上文章也很少~
: 主要是顧慮安全性問題,不然應該不會有這麼多東西要擔心~@@"
: 謝謝!
有幾個方法,我先假設在你的會員資料庫有儲存uid和fbid。
uid代表使用者在你們服務中的unique id,
fbid就是他在fb的unique id(一個不定長度的字串,如100000123456789)
1. 每次和fb驗證該token的fbid是啥,再查你的uid。(如你所說)
2. 一樣每次都傳fb access_token 回你的server,但是你的server有create一個
token的快取資料表,把access_token和對應的fbid存起來。
3. 第一次和fb取得fbid之後,把這個fbid和你的uid傳回app端,
把fbid+uid當成你api第二次之後的驗證方式,這個方式有點不大安全,但最簡單。
不過駭客除了要先猜出你的api介面,還要有正確的fbid+uid配對。
4. 第一次和fb取得fbid之後,你再查到你的uid之後,自己產生token。
(我覺得這應該是大部份app的做法)
譬如說,一個使用者在你的服務中uid是123,
你產生一個token 202cb962ac59075b964b07152d234b70 (123的md5),
(當然你絕對不會用md5(uid)產生token)
把這個token傳回app,存在app的userdefault,
順便把token/uid pair 存在伺服器資料庫,
每次和伺服器要新資料時,就把這個token當認證工具。
在產生token的時候記得考慮,token應該要是unique的。
再次強調,所有過程必用https。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.86.9
※ 編輯: benck 來自: 123.204.86.9 (07/09 10:44)
→
07/09 15:11, , 1F
07/09 15:11, 1F
→
07/09 15:12, , 2F
07/09 15:12, 2F
→
07/09 15:12, , 3F
07/09 15:12, 3F
→
07/10 05:55, , 4F
07/10 05:55, 4F
※ 編輯: benck 來自: 123.204.86.9 (07/10 05:55)
→
07/10 05:57, , 5F
07/10 05:57, 5F
→
07/10 05:57, , 6F
07/10 05:57, 6F
→
07/10 22:55, , 7F
07/10 22:55, 7F
→
07/10 22:55, , 8F
07/10 22:55, 8F
→
07/10 22:56, , 9F
07/10 22:56, 9F
→
07/10 22:57, , 10F
07/10 22:57, 10F
→
07/10 22:57, , 11F
07/10 22:57, 11F
→
07/10 22:57, , 12F
07/10 22:57, 12F
→
07/11 00:37, , 13F
07/11 00:37, 13F
→
07/11 00:39, , 14F
07/11 00:39, 14F
→
07/11 00:39, , 15F
07/11 00:39, 15F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章