两个系统都有独立的用户数据库,现在想打通,一次登录,两端使用。
登录之后,可以使用A 系统的功能,也可以使用B 系统的功能反之也可以。 谁能给说说,相关的文章也可以,只要解决问题,立刻给分!

解决方案 »

  1.   


    “反之也可以”这其实就是找麻烦了。假设可以从A上登录之后,同时使用B,那么你在B系统处理登录时就导航到A的登录,并且让其登录之后再重定向到B的下一个页面就行了。比如说B将用导航到A的登录页面
       http://www.aaaa.com/login.xxx?nextpage=http://www.bbbb.com/application1/main.aaa
    那么在login.xxx这个页面上,就会让用户登录,同时告诉用户不但可以登录A,而且可以登录B(从url可以看出来)。当用户登录A成功,A将用户导航到B的应用程序页面
       http://www.bbbb.com/application.main.aaa?passport=123456
    这样B就可以从后台访问A来取得通行证123456所对应的用户信息,在本网站的会话信息中记录这个登录用户。
      

  2.   

    当然啦,passport其实是保存到cookie中的。只是从A重定向到B的页面时在url上跨域传递一次。
      

  3.   

    我倒是没有过多去设计你的两套用户表整合还是分离的问题。只是在行为上,实际上要紧紧有一个系统用来登录,然后从登录系统自动导航到实际用户要使用的应用系统上。当界面重定向回应用系统,应用系统就可以查询登录系统的用户信息,来在本地也做个登录登记(比如说也在本地系统替用户自动登录并且也记录本地的passport,只不过不需要验证密码了)。或者,本地系统也可以删除登录、用户的数据,完全使用统一登录系统返回的数据。实际上我的回复中没有去细追究是删除B中的用户信息,还是保留B中的用户信息的问题。只是说明如何当用户登录的时候,先访问统一的登录页面,然后再返回到应用系统首界面并且去会用户登录信息。用户从A登录,那么就直接在A上登录就好了,它的passport认证信息就写到cookie中,这样以后的页面就无需登录。假设之后用户从B登录,会导航到A的登录页,这时候登录页知道用户已经登录了,它顶多让用户确认一下是否还要登录B这个网站(应用),如果用户同意那么登录页就重定向到B的首页面(同时在url参数中传递了A网站为用户授权的passport编号)。这时候B就可以或者通过数据库、或者直接访问A的服务(这个服务可以限制客户端内网IP)来取得这个passport对应的用户信息,B然后做自动的登录。如果用户先从B登录,那么就导航到A的登录页面。此时A网站知道用户在A商业没有登录,就会要求用户输入用户名和密码先在A直接登录,然后就更上述处理完全一样了。其实你可以单独做一个专门做用户登录的网站,A和B都与之独立。
      

  4.   

    SSO
      

  5.   

    在不影响用户登陆数据的情况下,新建一张表,并和邮箱登陆方式的表以及用户名登陆方式的表建立关联并生成不重复数字ID号,这样你就可以在两套系统中让用户知道自己的数字ID号,并让用户可以即用数字ID号登陆,也可用邮箱地址或用户名登陆!
      

  6.   

    数字ID可同时指向邮箱地址,用户名,以及以后的各种登陆方式,唯一不变的就是数字ID!即不需要更改你现在的两个数据库里面的登陆表,又可以实现这个功能!只是要楼主朋友要写个程序将它们的关联建立一下!