MacDev 板


LINE

※ 引述《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)
1F:→ charlesdc:How-To:Handle expired access toke http://ppt.cc/XlfS 07/09 15:11
2F:→ charlesdc:by default access token have a 2 hour lifetime 07/09 15:12
3F:→ charlesdc:裡面有說明是如何做到持續登入這件事 07/09 15:12
4F:→ benck:我說的token expire可能有點錯誤,修改一下 07/10 05:55
※ 編輯: benck 來自: 123.204.86.9 (07/10 05:55)
5F:→ benck:補充一下,原文提到自己發token的方式是因為大部份的app都有 07/10 05:57
6F:→ benck:不止一種的登入方式 (fb, twitter, email/password 等..) 07/10 05:57
7F:→ kiii210:感謝大大回復,原本已經決定要用SSL+token 07/10 22:55
8F:→ kiii210:但是後來同事覺得用SSL太麻煩,要申請每年還要花錢, 07/10 22:55
9F:→ kiii210:之後網頁還要改一堆地方...所以就暫時先不用了 07/10 22:56
10F:→ kiii210:不過fb有提供一個方法 07/10 22:57
12F:→ kiii210:可以驗證這個token是不是從我的app發出的~ 07/10 22:57
13F:→ benck:可是你在把那個token傳回給你的server的時候會被截走 07/11 00:37
14F:→ benck:一些像是cheapssls.com的網站有賣很便宜的SSL 07/11 00:39
15F:→ benck:買rapidssl一年只要9.95 07/11 00:39







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP