Home  >  Article  >  Backend Development  >  多网站用户信息如何同步,比如百度,糯米,hao123, 这样的不同域名你们是怎么做的,进来保底1分

多网站用户信息如何同步,比如百度,糯米,hao123, 这样的不同域名你们是怎么做的,进来保底1分

WBOY
WBOYOriginal
2016-06-23 13:29:351258browse

我现在想的是做一个程序,通用, 修改数据库链接信息,调用1个数据库,这是备用
用A(主站),B(分站,比如糯米这样的)表示
A 站  id  username  pwd  email   bduid
B站    id  username  pwd  email   bduid
bduid 表示网站的唯一用户标示,
如果B站没有这个用户, 就去A中找,
如果B中有 bduid 为空,就把信息插入到 A 中
如果B,和 A中都有, B 中 的bduid 为空,这样我就不知道怎么处理了, 如果email 相同还好说,如果不一样呢, 比较有些短点的 id 肯定有不同的人用, AB 2个网站都有可能有这个账号,
你们是怎么处理的?


回复讨论(解决方案)

类似discuz 的Ucenter,用户都存在一个数据库(如A),其他的应用(如B),都从A中获取用户信息,登录/注册都执行的是A,B中建立一个用户表存放只在B应用中用到的信息

类似discuz 的Ucenter,用户都存在一个数据库(如A),其他的应用(如B),都从A中获取用户信息,登录/注册都执行的是A,B中建立一个用户表存放只在B应用中用到的信息


我的 B 表中有一些,用户信息, 也要导入 A表中吗?
B表中的 uid 也在B站其他表中有使用

公用的用户信息就存在数据库A中,所有应用的uid都是从A中获取的

公用的用户信息就存在数据库A中,所有应用的uid都是从A中获取的


恩, 要是之前B站中也有数据的时候, 如何处理? 
B站中的其他表有使用 用户表 的uid 数据,
我现在就是纠结这个, 别的 都差不多, 
更新密码,可以定一个url, php后台访问,或直接服务器php文件直接修改密码,
对了, 之前的 密码加密方式不一样,


只能100分,不能加了 

若你现在以B站为主,那就将B站的用户数据表当成Ucenter,其他C站之类的,用户信息都是从B站获取的,是一样的

你似乎是要做一个 sso (单点登录)系统
1、由于原有系统 A、B、C、D...已经存在并正常运行。所以 sso 必须是独立系统
2、是否使用单点登录,权限在用户
3、由于原系统的用户名及口令均以存在,当选择单点登录时,需由用户开列其在各系统中的用户名
      也可注册一个新用户,通吃各系统

不知道楼主要做什么,
要同步各网站属于同一人的信息,必须要有唯一的标示,比方说以邮箱地址或者手机号或者QQ号为准,没有的话就让用户提供一种可以唯一标示用户的信息。基于这种唯一的信息再建表,将每个网站的账号整理存入这个表。

如果用户信息有更新,要有接口能给各个网站和你的数据库发消息,这样才能做到同步。

若你现在以B站为主,那就将B站的用户数据表当成Ucenter,其他C站之类的,用户信息都是从B站获取的,是一样的



哦, 我看看吧, 这个只能解决一个有数据,要是2个都有, 那就不行了 , 我再看看

你似乎是要做一个 sso (单点登录)系统
1、由于原有系统 A、B、C、D...已经存在并正常运行。所以 sso 必须是独立系统
2、是否使用单点登录,权限在用户
3、由于原系统的用户名及口令均以存在,当选择单点登录时,需由用户开列其在各系统中的用户名
      也可注册一个新用户,通吃各系统


看看这样行吗?
设置一个统一id 如 xxxxuid,  来标识 我的用户在,A,B等为同一个用户, 
唯一用户区分是email或手机
B站注册,首先发送 用户名,密码,手机,邮箱等 ,唯一标识到A站,注册,在在B, 保存,   xxxuid   等信息
修改密码同步更新 A的用户数据,
这样以后新增就不会有问题了,
之前旧数据处理
由于密码无法获取 (md5加密了,AB密码加密方式不同,就是相同,一般AUTH_KEY 也会不一样),
把B站所有信息通过处理插入A站, 没有密码, 返回给B站 xxxxuid 标识这是同一个用户并写入数据库, 
如果登录, A站(密码为空,首次导入没有密码),就去B站找对应的密码, 当然php文件有一个配置,字段 from_web_site 内容 xxx.com
$auth_web_site=array(  'xxx.com'=>array(           'url'=> 'B站url,判断密码是否正确,返回信息?auth_key={auth_key}&xxxuid=根据这个查询B站信息',            'auth_key' =>'防止别站验证'      )//  如果新增一个网站,这样就不怕了,配置下,用户数据导入下就可以用,)// 根据返回信息 更新A站密码,这样以后就不用去B站了,

你看看这样, 还有没有漏洞, 我想了2天, 
sso 这个,百度, 糯米,应该就是用的这个吧? 我也是刚知道这个,看看 哪个好, 哪个更容易

不知道楼主要做什么,
要同步各网站属于同一人的信息,必须要有唯一的标示,比方说以邮箱地址或者手机号或者QQ号为准,没有的话就让用户提供一种可以唯一标示用户的信息。基于这种唯一的信息再建表,将每个网站的账号整理存入这个表。

如果用户信息有更新,要有接口能给各个网站和你的数据库发消息,这样才能做到同步。


唯一标识有, 有邮箱, 和手机,但是用户名有可能重复, 但是不是通一个邮箱或手机
或同一个邮箱,手机, 用户名不同, 这个你是怎么处理的?

用ucenter 接口可以 最近正在也在做这个

用ucenter 接口可以 最近正在也在做这个

谢谢, 我看看这个

这种多站点 也就是多平台 用户同步问题. 之前做过......
比如有 A.B.C.D 4个站点 .分开独立运行的.
现在要统一 ABCD,注册,登录 的用户 头像积分,等很多信息..

我之前是 拿一个站点做主站点..也就是主用户数据库. 然后 其他bcd 注册 登录 都需要用jsonp 去查询,注册主站点.
比如 B站点 登录修改信息.
就去用jsonp 去 通知 ACD 站点. 这个用户已经登录.. 修改也是一样..
上面方式比较简单..
最好的方式的分离 通信系统 作为 主系统... 下面ABCD  任何信息都请求主系统.. 这样设计就好点.

ucenter也可以..不过思想都一样.

这种多站点 也就是多平台 用户同步问题. 之前做过......
比如有 A.B.C.D 4个站点 .分开独立运行的.
现在要统一 ABCD,注册,登录 的用户 头像积分,等很多信息..

我之前是 拿一个站点做主站点..也就是主用户数据库. 然后 其他bcd 注册 登录 都需要用jsonp 去查询,注册主站点.
比如 B站点 登录修改信息.
就去用jsonp 去 通知 ACD 站点. 这个用户已经登录.. 修改也是一样..
上面方式比较简单..
最好的方式的分离 通信系统 作为 主系统... 下面ABCD  任何信息都请求主系统.. 这样设计就好点.

ucenter也可以..不过思想都一样.



恩已经决定用ucenter了. 
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn