[問題] 以Facebook帳號登入app的問題

看板MacDev作者 (Johnny.T)時間12年前 (2013/07/08 18:19), 編輯推噓1(1017)
留言18則, 4人參與, 最新討論串1/2 (看更多)
各位前輩好~想請問一下關於用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)

07/08 18:51, , 1F
1.token有時間限制 就算被拿到他也只能用當初你開的權限
07/08 18:51, 1F

07/08 18:52, , 2F
如果權限開很大那就加密它
07/08 18:52, 2F

07/08 18:53, , 3F
2.你的說法好像沒有辦法解掉你擔心的問題
07/08 18:53, 3F

07/08 18:53, , 4F
假設我已經是會員了且我也知道該api丟的方式
07/08 18:53, 4F

07/08 18:54, , 5F
那它其實可以用任何方式實做出會讓你驗證過的token
07/08 18:54, 5F

07/08 18:56, , 6F
我沒有什麼經驗 但或許你可以再加一個server驗證是否由
07/08 18:56, 6F

07/08 18:57, , 7F
自己的軟體發出來的
07/08 18:57, 7F

07/08 20:49, , 8F
可以在http Header 塞自定欄位和相應的值之類的
07/08 20:49, 8F

07/08 21:47, , 9F
直接要user的email不就好了 為何還要先拿token再去註冊?
07/08 21:47, 9F

07/09 00:34, , 10F
他要的是 確保FB登入的資訊夠他辨別使用者
07/09 00:34, 10F

07/09 00:35, , 11F
但能拿到有辨識力的只有信箱跟名字
07/09 00:35, 11F

07/09 00:36, , 12F
只有這兩個的話太不保險 如果發生它2的形況
07/09 00:36, 12F

07/09 00:36, , 13F
它可以直接跟他的server API對接 只透過mail跟名字
07/09 00:36, 13F

07/09 00:37, , 14F
他第二項主要想防的應該是這段
07/09 00:37, 14F

07/09 00:39, , 15F
但拿token去驗證只能確保它是從FB登入 卻不能保證它是從
07/09 00:39, 15F

07/09 00:40, , 16F
你的軟體裡面發出來的
07/09 00:40, 16F

07/10 22:54, , 17F
感謝各位大大,目前決定先不用token了,同事表示SSL還要
07/10 22:54, 17F

07/10 22:55, , 18F
申請,之後一堆地方要改..
07/10 22:55, 18F
文章代碼(AID): #1Hsf9CrZ (MacDev)
文章代碼(AID): #1Hsf9CrZ (MacDev)