作者kiii210 (Johnny.T)
看板MacDev
標題[問題] 以Facebook帳號登入app的問題
時間Mon Jul 8 18:19:52 2013
各位前輩好~想請問一下關於用Facebook賬號來登入app的問題~
現在很多app已經用這個方法,直接用使用者的Facebook姓名,mail來註冊一個賬號
省去很多填資料的麻煩~
目前公司網站已有做Facebook登入功能,
用Facebook帳號登入之後,會把姓名,Mail存起來當做一個會員~
現在公司app也打算用這個方法,網站跟app的資料要互通~
目前想到的做法是這樣:
http://ppt.cc/-UEt
1. 點擊Facebook登入
2. 登入成功,取得access_token
3. 傳回給伺服器,由伺服器處理註冊賬號的動作
疑問:
1) 這中間是否會有安全性的問題?因為拿到token就等於有帳號的存取權限
是否該透過https加密後送出?
2) 安全性問題2
開發網站的同事擔心有心人拿到app與伺服器溝通的api網址後會亂搞,
目前想法:傳access_token給伺服器之後,由伺服器拿去與Facebook Graph Api驗證
https://graph.facebook.com/me/?access_token=
如果回傳的verified是true,代表這個使用者沒問題,可以放心的做溝通
反之拒絕回傳資料。(
http://ppt.cc/HBEU)
這樣是否可以?
3) 該如何保持"登入狀態"?
開發網站的同事表示不想每次都跟Facebook驗證token是否有效,
那我是不是在跟api做溝通的時候把cookie存在UserDefaults裡面,
待下次跟api做溝通把cookie也一併送出去即可?
感謝耐心看完~因為沒開發這方面的經驗~網路上文章也很少~
主要是顧慮安全性問題,不然應該不會有這麼多東西要擔心~@@"
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.34.110.106
※ 編輯: kiii210 來自: 1.34.110.106 (07/08 18:22)
→ charlesdc:1.token有時間限制 就算被拿到他也只能用當初你開的權限 07/08 18:51
→ charlesdc:如果權限開很大那就加密它 07/08 18:52
→ charlesdc:2.你的說法好像沒有辦法解掉你擔心的問題 07/08 18:53
→ charlesdc:假設我已經是會員了且我也知道該api丟的方式 07/08 18:53
→ charlesdc:那它其實可以用任何方式實做出會讓你驗證過的token 07/08 18:54
→ charlesdc:我沒有什麼經驗 但或許你可以再加一個server驗證是否由 07/08 18:56
→ charlesdc:自己的軟體發出來的 07/08 18:57
→ yuanruo:可以在http Header 塞自定欄位和相應的值之類的 07/08 20:49
推 xevisu:直接要user的email不就好了 為何還要先拿token再去註冊? 07/08 21:47
→ charlesdc:他要的是 確保FB登入的資訊夠他辨別使用者 07/09 00:34
→ charlesdc:但能拿到有辨識力的只有信箱跟名字 07/09 00:35
→ charlesdc:只有這兩個的話太不保險 如果發生它2的形況 07/09 00:36
→ charlesdc:它可以直接跟他的server API對接 只透過mail跟名字 07/09 00:36
→ charlesdc:他第二項主要想防的應該是這段 07/09 00:37
→ charlesdc:但拿token去驗證只能確保它是從FB登入 卻不能保證它是從 07/09 00:39
→ charlesdc:你的軟體裡面發出來的 07/09 00:40
→ kiii210:感謝各位大大,目前決定先不用token了,同事表示SSL還要 07/10 22:54
→ kiii210:申請,之後一堆地方要改.. 07/10 22:55