跨域访问方法和装置与流程

文档序号:12494396阅读:273来源:国知局
跨域访问方法和装置与流程

本发明涉及浏览器领域,尤其涉及一种跨域访问方法和装置。



背景技术:

对于大中型互联网企业,往往有很多产品业务线,每个业务线一般对应一个域。为方便管理,大多数企业会建立一公共的用户中心,以便集中管理。但各个域不在同一域,不能通过cookie的形式跨域访问。



技术实现要素:

有鉴于此,有必要提供一种跨域访问方法及装置,以解决上述问题。

本发明提供一种跨域访问方法。所述方法包括: 响应用户输入的登录信息而登录第一域;

获取所述登录信息,根据所述登录信息从所述第一域登录总域,将所述登录信息存储在所述总域,其中,所述第一域为所述总域的子节点;所述总域将所述登录信息传送至若干第二域,所述第一域具有对应每一所述第二域的跨域接口,所述第一域通过所述跨域接口向对应的所述第二域发出登录请求,其中,所述若干第二域与所述第一域并列为所述总域的子节点,所述若干第二域与所述第一域在不同域;及所述第二域接收所述登录信息及所述登录请求,所述第二域根据所述登录信息及所述登录请求允许所述第一域登录所述第二域。

本发明还提供一种跨域访问装置。所述跨域访问装置第一登录模块、第二登录模块、传送模块和第三登录模块。所述第一登录模块用于响应用户输入的登录信息而登录第一域。所述第二登录模块用于获取所述登录信息,根据所述登录信息从所述第一域登录总域,将所述登录信息存储在所述总域,其中,所述第一域为所述总域的子节点。所述传送模块用于控制所述总域将所述登录信息传送至若干第二域,其中,所述第一域具有对应每一所述第二域的跨域接口,及控制所述第一域通过所述跨域接口向对应的所述第二域发出登录请求,其中,所述若干第二域与所述第一域并列为所述总域的子节点,所述若干第二域与所述第一域在不同域。所述第三登录模块用于控制所述第二域接收所述登录信息及所述登录请求,所述第二域根据所述登录信息及所述登录请求允许所述第一域登录所述第二域。

本发明使用单点登录,并将相关的登录信息漫游到其它域中,使用跨域接口跨域到相关域,避免重复输入登录信息的繁琐。

附图说明

为了更清楚地说明本发明实施方式的技术方案,下面将对本发明实施方式中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施方式的跨域访问方法的示意性流程图。

图2为本发明实施方式的跨域访问过程的示意图。

图3是本发明实施方式的跨域访问装置的示意性框图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述。需要说明的是,在不冲突的情况下,本申请的实施方式及实施方式中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施方式仅是本发明的一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施方式,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

本发明说明书、权利要求书和附图中出现的术语“第一”和“第二”等是用于区别不同的对象,而并非用于描述特定的顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

请参考图1,图1为一实施方式中跨域访问方法的流程示意图。所述方法应用在电子设备中,所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)等。所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。

步骤S101,响应用户输入的登录信息而登录第一域,请一并参考图2,例如,用户中心ucenter.aaa.com,三个产品,分别是产品A:www.aaa.com,产品B:www.bbb.com,产品C:www.ccc.com。具体地,所述登录信息包括域账号、域密码和验证码。本实施方式中,响应用户在第一域的登录栏中输入的登录名、登录密码和验证码信息后登录所述第一域,且登录成功后,将所述登录信息加密,具体为将所述登录信息中的登录密码和验证码一同加密生成一加密的数据包,例如,md5_token。在其它实施方式中,所述登录信息可以不用加密。

步骤S102,获取所述登录信息,根据所述登录信息从所述第一域登录总域,并将所述登录信息存储在所述总域,其中,总域为用户中心,例如,ucenter.aaa.com,所述第一域为所述总域的子节点。例如,产品A:www.aaa.com,产品B:www.bbb.com,或产品C:www.ccc.com。本实施方式中,所述第一域为产品A:www.aaa.com,从所述第一域登录所述总域后,还跳转至所述第一域的页面。

步骤S103,总域将所述登录信息传送至若干第二域,第一域通过跨域接口向对应的第二域发出登录请求。其中,所述第一域具有对应每个第二域的跨域接口。 通过设置在所述第一域中的跨域接口请求对应的第二域根据所获取的登录信息登录所述第二域。其中,所述若干第二域与所述第一域并列为所述总域的子节点,所述若干第二域与所述第一域在不同域。例如,第二域为产品B:www.bbb.com或者产品C:www.ccc.com。本实施方式中,所述跨域接口为AJAX(Asynchronous Java Script And Extensible Markup Language,异步Java描述语言和可扩展标记语言)接口,具体为AJAX的jsonp(JSON with Padding)形式的接口。其它实施方式中,所述跨域接口可为其它适合形式的接口。

步骤S104,第二域接收所述登录信息及所述登录请求,第二域还根据所述登录信息及所述登录请求允许所述第一域登录所述第二域。本实施方式中,所述第二域在接收所述登录信息及所述登录请求后做安全性验证,且在安全性验证通过后,允许所述第一域通过对应的跨域接口访问所述第二域。其它实施方式中,安全性验证可省略。本实施方式中,第二域接收所述登录信息后,还将所述登录信息存储到所述第二域的数据库中或者缓存中。其中,所述缓存为redis或memcache。具体地,redis为分布式的高速缓存系统,它支持存储的类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)),memcache为分布式的高速缓存系统。其中,所述安全性验证包括但不限于对所述登录信息进行验证等,验证通过后,在所述第二域中写相应的cookie信息以及其他操作。其中,Cookies就是服务器暂存放在本地里的资料,其为.txt格式的文本文件,当下次再访问时,就会依据Cookie里的内容来判断使用者,并送出特定的网页内容。

在一实施方式中,所述跨域访问方法还包括步骤S105。

步骤S105,响应在所述第一域的退出操作而从所述第一域退出登录,相应的,从总域和第二域中退出。在退出登录成功后将所述第一域中的登录信息更新为空,并将所述总域中的登录信息更新为空,且通过所述跨域接口请求将所述第二域中的登录信息更新为空,即从所述总域及所述第二域中退出。

请参阅图3,为本发明一实施方式中的跨域访问装置100的模块示意图。

所述跨域访问装置100包括第一登录模块10、第二登录模块20、传送模块30和第三登录模块40。

所述第一登录模块10用于响应用户输入的登录信息而登录第一域,请一并参考图2,例如,用户中心ucenter.aaa.com,三个产品,分别是产品A:www.aaa.com,产品B:www.bbb.com,产品C:www.ccc.com。具体地,所述登录信息包括域账号、域密码和验证码。本实施方式中,所述第一登录模块10用于响应用户在第一域的登录栏中输入的登录名、登录密码和验证码信息后登录所述第一域,且登录成功后,将所述登录信息加密,具体为将所述登录信息中的登录密码和验证码一同加密生成一加密的数据包,例如,md5_token。在其它实施方式中,所述登录信息可以不用加密。

第二登录模块20,用于获取所述登录信息,根据所述登录信息从所述第一域登录总域,并将所述登录信息存储在所述总域,其中,总域为用户中心,例如,ucenter.aaa.com,所述第一域为所述总域的子节点。例如,产品A:www.aaa.com,产品B:www.bbb.com,或产品C:www.ccc.com。本实施方式中,所述第一域为产品A:www.aaa.com。本实施方式中,第二登录模块20还用于在从所述第一域登录所述总域后跳转至所述第一域的页面。

传送模块30,用于控制总域将所述登录信息传送至若干第二域,第一域通过跨域接口向对应的第二域发出登录请求。其中,所述第一域具有对应每个第二域的跨域接口。 通过设置在所述第一域中的跨域接口请求对应的第二域根据所获取的登录信息登录所述第二域。其中,所述若干第二域与所述第一域并列为所述总域的子节点,所述若干第二域与所述第一域在不同域。例如,第二域为产品B:www.bbb.com或者产品C:www.ccc.com。本实施方式中,所述跨域接口为AJAX(Asynchronous Java Script And Extensible Markup Language,异步Java描述语言和可扩展标记语言)接口,具体为AJAX的jsonp(JSON with Padding)形式的接口。其它实施方式中,所述跨域接口可为其它适合形式的接口。

第三登录模块40,用于控制第二域接收所述登录信息及所述登录请求,第二域还根据所述登录信息及所述登录请求允许所述第一域登录所述第二域。本实施方式中,所述第三登录模块40还用于控制所述第二域在接收所述登录信息及所述登录请求后做安全性验证,且在安全性验证通过后,允许所述第一域通过对应的跨域接口访问所述第二域。其它实施方式中,安全性验证可省略。本实施方式中,所述第三登录模块40还用于在所述第二域接收所述登录信息后,还将所述登录信息存储到所述第二域的数据库中或者缓存中。其中,所述缓存为redis或memcache。具体地,redis为分布式的高速缓存系统,它支持存储的类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)),memcache为分布式的高速缓存系统。其中,所述安全性验证包括但不限于对所述登录信息进行验证等,验证通过后,在所述第二域中写相应的cookie信息以及其他操作。其中,Cookies就是服务器暂存放在本地里的资料,其为.txt格式的文本文件,当下次再访问时,就会依据Cookie里的内容来判断使用者,并送出特定的网页内容。

在一实施方式中,所述跨域访问装置100还包括退出模块50。其中,所述退出模块50用于响应在所述第一域的退出操作而从所述第一域退出登录,相应的,从总域和第二域中退出登录。所述退出模块50具体用于将所述第一域中的登录信息更新为空,并将所述总域中的登录信息更新为空,且通过所述跨域接口请求将所述第二域中的登录信息更新为空,即从所述第一域、总域及所述第二域中退出。

可理解,本实施方式以第一域中具有对应每一所述第二域的跨域接口为例说明本发明,可理解,此“第一”、“第二”并不能限制本发明,任一所述第一域或任一所述第二域均可包含对应其它第一域或者第二域的跨域接口,也就是说,通过任一所述第一域或者所述第二域均可访问其它的第一域或者第二域,实际操作时,只要任意登录所述第一域或者第二域,就可以访问其它的第一域或者第二域。

本发明使用单点登录,并将相关的登录信息漫游到其它域中,使用跨域接口跨域到相关域中写cookie信息,相关域根据cookie信息来判定用户的登录态以及相关的登录信息,用户退出的时候,使用跨域接口请求相关域中销毁相关的登录信息,避免重复输入登录信息的繁琐。

本发明所述的电子设备包括至少一个处理器、至少一个存储器、至少一个收发器及系统总线。所述收发器可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他设备进行数据通信。所述存储器可以是高速RAM存储器,也可以是非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。所述存储器中存储有程序代码,例如所述的跨域访问装置100,及各个应用程序运行中产生及使用的数据。所述处理器可通过系统总线调用所述存储器中存储的程序代码及数据,例如跨域访问装置100以执行相关的功能从而实现跨域访问方法。

本说明书实施方式所述的内容仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施方式所陈述的具体形式,本发需要说明的是,本说明书中的各个实施方式均采用递进的方式描述,每个实施方式重点说明的都是与其它实施方式的不同之处,各个实施方式之间相同相似的部分互相参见即可。对于装置实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。

在本申请所提供的几个实施方式中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:磁碟、光盘、只读存储记忆体(Read-Only Memory,简称ROM)或随机存储记忆体(Random Access Memory,简称RAM)等。

以上所述,以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1