首页 > 请教最适合在多个主域名及移动应用之间共享账号的方式

请教最适合在多个主域名及移动应用之间共享账号的方式

例如 xxx.com 是仅负责管理账号和用户信息的网站。
xx1.im xx2.im xx3.im 是提供各种不同应用的站点。
还有一部分应用提供移动设备的APP,需要在APP上进行 xxx.com 的登录验证。
验证成功后以登录用户身份从 xx1.im 应用站点上获取关于此应用的数据。

) 用户信息的共享:

用户在 xxx.com 注册账户之后可以上传头像、设置昵称。

如果 xx1.im 要调用用户的昵称,并在用户发表的文章处显示给大家看的话。
昵称是否一定要保存一份,存在 xx1.im 的数据库里呢?
如果要保存在 xx1.im 的数据库里,请问如何保持与 xxx.com 的同步?
请问 xx1.im 从 xxx.com 调用数据最安全的方式是什么?

刚刚看到 支持很多账号的登录,因为对这些登录方式了解不够深入。
但是发现可能这些登录方式就是解决这个问题的答案。
如果是的话,请跳过上面的问题。

) 类似使用新浪微博的登录方式:

如果 xxx.com 提供这类协议,然后 xx1.im 用这类协议登录。
请问如何保持子站点的用户昵称与 xxx.com 之间的同步呢?

刚刚又在新浪微博的API WIKI里看到 “因为xAuth依然会获得用户明文密码,xAuth实行有限开放。开发初期建议使用桌面客户端使用OAuth,移动客户端使用WAP 1.0或者2.0版页面授权。当用户数量达到一定规模后再使用xAuth提升用户体验。”

然后读到 “采用xAuth认证的桌面应用和移动应用可以跳过oauth/request_token(获取Request Token)以及oauth/authorize(授权Request Token)两步,只要提供了username和password以后,即可直接通过oauth/access_token接口得到Access Token。”

如果 xx1.im 从 xxx.com 用 xauth 获取用户名和密码之后,以后再登陆应该不需要通过什么协议与 xxx.com 验证,直接从数据库里面验证第一次获取的用户名和密码就好了啊?!为什么还要什么Access Token呢?难道用于同步密码?

不好意思问得有一点混乱,最近积累了不少疑惑。麻烦了。


首先,关于第三方登陆用户Profile同步问题。用户每次登陆,都应该去第三方网站去更新一次Profile,然后存在本地,供本次登陆周期内使用。

然后,关于OAuth和各种Token什么的,拿Sina和SegmentFault举例。
1. 用户名密码一定在本网站输入(比如新浪登陆,一定要在新浪的页面输入用户名密码)
2. 非法应用无法登陆,AccessToken基于SegmentFault的应用ID。
3. 使用Sina登陆SegmentFault后,SegmentFault拿到两个token作为凭证可以去Sina进行操作,而这个凭证是否过期由Sina控制,例如用户改了密码,那么就可以失效这个token,用户再来的时候,就必须重新去Sina授权一次。


用户信息的共享:
1.关于用户昵称和头像,可以不用写在应用的数据库里,每次登录后写入cookies里面就好。

2.多账号登录,在首次登录时有个绑定过程,没解决你的同步问题。只是提供一个快捷的登录方式而已。

类似使用新浪微博的登录方式:
1.微博有提供个人资料的API,可以通过API在应用里修改资料。

2.为什么要用access token? 首先你就理解错了,xauth不是让你取得用户名和密码,只是说在身份验证的时候,需要用户输入一次用户名和密码让应用获取授权。access token就是用户授权给应用的一个通行证,每次应用请求API时,要通过这个通行证去获取批准。这比直接把用户名和密码暴露给应用要安全的多。

对于你的问题,如果应用和身份验证都是自己内部的,没准备让第三方接入的话,解决方法其实很简单,就是普通的http basic验证。你还是移动APP,都单点登录都不用考虑。。。

【热门文章】
【热门文章】