作者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)
1F:→ charlesdc:1.token有时间限制 就算被拿到他也只能用当初你开的权限 07/08 18:51
2F:→ charlesdc:如果权限开很大那就加密它 07/08 18:52
3F:→ charlesdc:2.你的说法好像没有办法解掉你担心的问题 07/08 18:53
4F:→ charlesdc:假设我已经是会员了且我也知道该api丢的方式 07/08 18:53
5F:→ charlesdc:那它其实可以用任何方式实做出会让你验证过的token 07/08 18:54
6F:→ charlesdc:我没有什麽经验 但或许你可以再加一个server验证是否由 07/08 18:56
7F:→ charlesdc:自己的软体发出来的 07/08 18:57
8F:→ yuanruo:可以在http Header 塞自定栏位和相应的值之类的 07/08 20:49
9F:推 xevisu:直接要user的email不就好了 为何还要先拿token再去注册? 07/08 21:47
10F:→ charlesdc:他要的是 确保FB登入的资讯够他辨别使用者 07/09 00:34
11F:→ charlesdc:但能拿到有辨识力的只有信箱跟名字 07/09 00:35
12F:→ charlesdc:只有这两个的话太不保险 如果发生它2的形况 07/09 00:36
13F:→ charlesdc:它可以直接跟他的server API对接 只透过mail跟名字 07/09 00:36
14F:→ charlesdc:他第二项主要想防的应该是这段 07/09 00:37
15F:→ charlesdc:但拿token去验证只能确保它是从FB登入 却不能保证它是从 07/09 00:39
16F:→ charlesdc:你的软体里面发出来的 07/09 00:40
17F:→ kiii210:感谢各位大大,目前决定先不用token了,同事表示SSL还要 07/10 22:54
18F:→ kiii210:申请,之後一堆地方要改.. 07/10 22:55