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灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP