跨域通信方法及跨域通信系统
技术领域
本发明涉及网页通信技术领域,具体而言,涉及跨域通信方法和跨域通信系统。
背景技术
域名(Domain Name),是由一串用点分隔的名字组成的Internet(因特网)上某一台计算机或计算机组的名称,用于在数据传输时标识计算机或计算机组的电子方位(有时也指地理位置、地理上的域名或者指代有行政自主权的一个地方区域)。域名相当于一个IP(Internet Protocol,网络之间互连的协议)地址上有“面具”,一个域名是便于记忆和沟通的一组服务器的地址(网站、电子邮件或者FTP(File Transfer Protocol,文件传输协议)等),域名还可以作为力所能及难忘的互联网参与者的名称。
但是,由于同源策略,一般来说位于域名sever1.example.com的网页无法与不是与域名sever1.example.com的服务器沟通,这种同源策略阻止了不同源的网页之间的数据通信,丢失了跨域数据传递的便捷性。
因此,针对以上每个自然人在自然生活中遇到以上各种情形,在访问网站的时候,如何解决各个域名之间跨域通信和值传递的问题,以及在通信和值传递过程中信息的安全性和高并发的问题,成为亟待解决的技术问题。
发明内容
本发明正是基于上述技术问题,提出了一种新的技术方案,可以在访问网站时,实现具有不同域名的系统之间的便捷通信以及值的顺利传递,同时可以有效地解决跨域通信和值传递过程中信息的安全性问题,从而提升用户体验。
有鉴于此,本发明的第一方面,提出了一种跨域通信方法,包括:向第一应用系统发送登录请求;在所述第一应用系统中,根据所述登录请求调用第二应用系统的登录页面执行对所述第二应用系统的登录操作,所述第一应用系统和所述第二应用系统具有不同的域名;当在所述第一应用系统中成功登录所述第二应用系统后,根据操作指令调用所述第二应用系统中的其他操作页面执行相应的操作。
在该技术方案中,当用户使用浏览器进入第一应用系统,且需要在第一应用系统中实现对与其具有不同域名的第二应用系统的相关操作,即实现第一应用系统和第二应用系统之间的跨域通信时,可以向第一应用系统发送用于登录第二应用系统的登录请求,以根据该登录请求调用第二应用系统的登录页面执行对其的登录操作,并在第一应用系统中成功登录第二应用系统后,可以根据用户输入的任何操作指令在第一应用系统中调用第二应用系统的相关操作页面执行相应的操作,从而实现具有不同域名的系统之间的便捷通信以及值的顺利传递。
在上述技术方案中,优选地,所述登录请求中包含登录用户名和登录密码,以及所述在所述第一应用系统中,根据所述登录请求调用第二应用系统的登录页面执行对所述第二应用系统的登录操作的步骤,包括:在所述第二应用系统中,验证所述登录用户名和所述登录密码的合法性;验证通过后,在所述第一应用系统中验证所述登录用户名和所述登录密码的合法性,并在验证通过后登录所述第二应用系统。
在该技术方案中,当根据用户的登录请求在第一应用系统中调用第二应用系统的登录页面执行对其的登录操作时,具体地,需要首先在第二应用系统中验证登录请求中携带的用户名和登录密码的合法性,即是否可以成功登录第二应用系统,若验证通过,则说明可以将第二应用系统的登录页面调用至第一应用系统中,进而可以在告知第一应用系统在第二应用系统中登录成功后,将第二应用系统的登录页面调用至第一应用系统中,以在第一应用系统中再次验证上述用户名和登录密码的合法性,从而确保不同域名的系统之间的通信的安全性和可靠性。
在上述任一技术方案中,优选地,在所述根据操作指令调用所述第二应用系统中的其他操作页面执行相应的操作的过程中,还包括:对所述第一应用系统和所述第二应用系统之间的通信数据进行加密。
在该技术方案中,当在第一应用系统中成功登录第二应用系统后,进行第一应用系统和第二应用系统之间的跨域通信时,可以采用对二者之间的通信数据进行加密的方式确保跨域通信和值传递过程中信息的安全性。
在上述任一技术方案中,优选地,所述跨域通信方法还包括:向所述第一应用系统发送退出登录请求;在所述第一应用系统中,根据所述退出登录请求调用所述第二应用系统的退出登录页面执行对所述第二应用系统的退出操作,并在所述第一应用系统和所述第二应用系统中清除浏览器缓存信息。
在该技术方案中,当完成第一应用系统和第二应用系统之间的跨域通信,需要退出对第二应用系统的登录时,同样可以在第一应用系统接收到退出第二应用系统的退出登录请求时直接调用第二应用系统的退出登录页面执行退出登录的操作,无需切换系统,操作简单便捷,同时可以将第一应用系统和第二应用系统中当前次跨域通信过程中产生的浏览器缓存信息,比如用户名、登录密码等登录验证信息、用户浏览记录等,以确保用户的信息安全,进一步提高跨域通信的安全性和可靠性。
在上述任一技术方案中,优选地,所述登录请求和所述退出登录请求均为HTTP请求。
在该技术方案中,用于在第一应用系统中登录第二应用系统的登录请求和退出第二应用系统的退出登录请求均为HTTP(Hyper Text TransferProtocol,超文本传输协议)请求的形式,以使在浏览器更加高效,并可以有效减少网络传输。
本发明的第二方面,提出了一种跨域通信系统,包括:发送模块,用于向第一应用系统发送登录请求;管理模块,用于在所述第一应用系统中,根据所述登录请求调用第二应用系统的登录页面执行对所述第二应用系统的登录操作,所述第一应用系统和所述第二应用系统具有不同的域名;处理模块,用于当在所述第一应用系统中成功登录所述第二应用系统后,根据操作指令调用所述第二应用系统中的其他操作页面执行相应的操作。
在该技术方案中,当用户使用浏览器进入第一应用系统,且需要在第一应用系统中实现对与其具有不同域名的第二应用系统的相关操作,即实现第一应用系统和第二应用系统之间的跨域通信时,可以向第一应用系统发送用于登录第二应用系统的登录请求,以根据该登录请求调用第二应用系统的登录页面执行对其的登录操作,并在第一应用系统中成功登录第二应用系统后,可以根据用户输入的任何操作指令在第一应用系统中调用第二应用系统的相关操作页面执行相应的操作,从而实现具有不同域名的系统之间的便捷通信以及值的顺利传递。
在上述技术方案中,优选地,所述登录请求中包含登录用户名和登录密码,以及所述管理模块具体用于:在所述第二应用系统中,验证所述登录用户名和所述登录密码的合法性;验证通过后,在所述第一应用系统中验证所述登录用户名和所述登录密码的合法性,并在验证通过后登录所述第二应用系统。
在该技术方案中,当根据用户的登录请求在第一应用系统中调用第二应用系统的登录页面执行对其的登录操作时,具体地,需要首先在第二应用系统中验证登录请求中携带的用户名和登录密码的合法性,即是否可以成功登录第二应用系统,若验证通过,则说明可以将第二应用系统的登录页面调用至第一应用系统中,进而可以在告知第一应用系统在第二应用系统中登录成功后,将第二应用系统的登录页面调用至第一应用系统中,以在第一应用系统中再次验证上述用户名和登录密码的合法性,从而确保不同域名的系统之间的通信的安全性和可靠性。
在上述任一技术方案中,优选地,所述跨域通信系统还包括:加密模块,用于在所述处理模块根据操作指令调用所述第二应用系统中的其他操作页面执行相应的操作的过程中,对所述第一应用系统和所述第二应用系统之间的通信数据进行加密。
在该技术方案中,当在第一应用系统中成功登录第二应用系统后,进行第一应用系统和第二应用系统之间的跨域通信时,可以采用对二者之间的通信数据进行加密的方式确保跨域通信和值传递过程中信息的安全性。
在上述任一技术方案中,优选地,所述发送模块还用于:向所述第一应用系统发送退出登录请求;所述管理模块还用于:在所述第一应用系统中,根据所述退出登录请求调用所述第二应用系统的退出登录页面执行对所述第二应用系统的退出操作,并在所述第一应用系统和所述第二应用系统中清除浏览器缓存信息。
在该技术方案中,当完成第一应用系统和第二应用系统之间的跨域通信,需要退出对第二应用系统的登录时,同样可以在第一应用系统接收到退出第二应用系统的退出登录请求时直接调用第二应用系统的退出登录页面执行退出登录的操作,无需切换系统,操作简单便捷,同时可以将第一应用系统和第二应用系统中当前次跨域通信过程中产生的浏览器缓存信息,比如用户名、登录密码等登录验证信息、用户浏览记录等,以确保用户的信息安全,进一步提高跨域通信的安全性和可靠性。
在上述任一技术方案中,优选地,所述登录请求和所述退出登录请求均为HTTP请求。
在该技术方案中,用于在第一应用系统中登录第二应用系统的登录请求和退出第二应用系统的退出登录请求均为HTTP请求的形式,以使在浏览器更加高效,并可以有效减少网络传输。
通过本发明的技术方案,可以在访问网站时,实现具有不同域名的系统之间的便捷通信以及值的顺利传递,同时可以有效地解决跨域通信和值传递过程中信息的安全性问题,从而提升用户体验。
附图说明
图1示出了本发明的第一实施例的跨域通信方法的流程示意图;
图2示出了本发明的第二实施例的跨域通信方法的流程示意图;
图3示出了本发明的第三实施例的跨域通信方法的流程示意图;
图4示出了本发明的第一实施例的跨域通信系统的示意框图;
图5示出了本发明的第二实施例的跨域通信系统的示意框图;
图6示出了本发明的实施例的以用户登录为例的跨域通信的流程示意图;
图7示出了本发明的实施例的以用户退出登录为例的跨域通信的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
下面结合图1至图3对本发明的实施例的跨域通信方法进行详细说明。
图1示出了本发明的第一实施例的跨域通信方法的流程示意图。
如图1所示,根据本发明的第一实施例的跨域通信方法,具体包括以下流程步骤:
步骤S10,向第一应用系统发送登录请求。
步骤S20,在所述第一应用系统中,根据所述登录请求调用第二应用系统的登录页面执行对所述第二应用系统的登录操作,所述第一应用系统和所述第二应用系统具有不同的域名。
步骤S30,当在所述第一应用系统中成功登录所述第二应用系统后,根据操作指令调用所述第二应用系统中的其他操作页面执行相应的操作。
在该实施例中,当用户使用浏览器进入第一应用系统,且需要在第一应用系统中实现对与其具有不同域名的第二应用系统的相关操作,即实现第一应用系统和第二应用系统之间的跨域通信时,可以向第一应用系统发送用于登录第二应用系统的登录请求,以根据该登录请求调用第二应用系统的登录页面执行对其的登录操作,并在第一应用系统中成功登录第二应用系统后,可以根据用户输入的任何操作指令在第一应用系统中调用第二应用系统的相关操作页面执行相应的操作,从而实现具有不同域名的系统之间的便捷通信以及值的顺利传递。
进一步地,在上述实施例中,所述登录请求中包含登录用户名和登录密码,如图2所示,根据本发明的第二实施例的跨域通信方法,该实施例中的步骤S10与图1所示的上述实施例中的步骤S10的内容基本相同,区别在于,
步骤S20具体执行为:步骤S21,在所述第二应用系统中,验证所述登录用户名和所述登录密码的合法性;步骤S22,验证通过后,在所述第一应用系统中验证所述登录用户名和所述登录密码的合法性,并在验证通过后登录所述第二应用系统。
在该实施例中,当根据用户的登录请求在第一应用系统中调用第二应用系统的登录页面执行对其的登录操作时,具体地,需要首先在第二应用系统中验证登录请求中携带的用户名和登录密码的合法性,即是否可以成功登录第二应用系统,若验证通过,则说明可以将第二应用系统的登录页面调用至第一应用系统中,进而可以在告知第一应用系统在第二应用系统中登录成功后,将第二应用系统的登录页面调用至第一应用系统中,以在第一应用系统中再次验证上述用户名和登录密码的合法性,从而确保不同域名的系统之间的通信的安全性和可靠性。
步骤S30具体执行为:步骤S31,根据操作指令调用所述第二应用系统中的其他操作页面执行相应的操作,并对所述第一应用系统和所述第二应用系统之间的通信数据进行加密。
在该实施例中,当在第一应用系统中成功登录第二应用系统后,进行第一应用系统和第二应用系统之间的跨域通信时,可以采用对二者之间的通信数据进行加密的方式确保跨域通信和值传递过程中信息的安全性。
进一步地,如图3所示,根据本发明的第三实施例的跨域通信方法,该实施例中的步骤S10~步骤S30与图1所示的上述实施例中的步骤S10~步骤S30的内容基本相同,区别在于,该实施例还包括以下步骤:
步骤S40,向所述第一应用系统发送退出登录请求。
步骤S50,在所述第一应用系统中,根据所述退出登录请求调用所述第二应用系统的退出登录页面执行对所述第二应用系统的退出操作,并在所述第一应用系统和所述第二应用系统中清除浏览器缓存信息。
在该实施例中,当完成第一应用系统和第二应用系统之间的跨域通信,需要退出对第二应用系统的登录时,同样可以在第一应用系统接收到退出第二应用系统的退出登录请求时直接调用第二应用系统的退出登录页面执行退出登录的操作,无需切换系统,操作简单便捷,同时可以将第一应用系统和第二应用系统中当前次跨域通信过程中产生的浏览器缓存信息,比如用户名、登录密码等登录验证信息、用户浏览记录等,以确保用户的信息安全,进一步提高跨域通信的安全性和可靠性。
进一步地,在上述任一实施例中,所述登录请求和所述退出登录请求均为HTTP请求,即用于在第一应用系统中登录第二应用系统的登录请求和退出第二应用系统的退出登录请求均为HTTP请求的形式,以使在浏览器更加高效,并可以有效减少网络传输。
下面结合图4和图5对本发明的实施例的跨域通信系统进行详细说明。
图4示出了本发明的第一实施例的跨域通信系统的示意框图。
如图4所示,根据本发明的第一实施例的跨域通信系统400,具体包括:发送模块402、管理模块404和处理模块406。
其中,所述发送模块402用于向第一应用系统发送登录请求;所述管理模块404用于在所述第一应用系统中,根据所述登录请求调用第二应用系统的登录页面执行对所述第二应用系统的登录操作,所述第一应用系统和所述第二应用系统具有不同的域名;所述处理模块406用于当在所述第一应用系统中成功登录所述第二应用系统后,根据操作指令调用所述第二应用系统中的其他操作页面执行相应的操作。
在该实施例中,当用户使用浏览器进入第一应用系统,且需要在第一应用系统中实现对与其具有不同域名的第二应用系统的相关操作,即实现第一应用系统和第二应用系统之间的跨域通信时,可以向第一应用系统发送用于登录第二应用系统的登录请求,以根据该登录请求调用第二应用系统的登录页面执行对其的登录操作,并在第一应用系统中成功登录第二应用系统后,可以根据用户输入的任何操作指令在第一应用系统中调用第二应用系统的相关操作页面执行相应的操作,从而实现具有不同域名的系统之间的便捷通信以及值的顺利传递。
进一步地,在上述实施例中,所述登录请求中包含登录用户名和登录密码,以及所述管理模块404具体用于:在所述第二应用系统中,验证所述登录用户名和所述登录密码的合法性;验证通过后,在所述第一应用系统中验证所述登录用户名和所述登录密码的合法性,并在验证通过后登录所述第二应用系统。
在该实施例中,当根据用户的登录请求在第一应用系统中调用第二应用系统的登录页面执行对其的登录操作时,具体地,需要首先在第二应用系统中验证登录请求中携带的用户名和登录密码的合法性,即是否可以成功登录第二应用系统,若验证通过,则说明可以将第二应用系统的登录页面调用至第一应用系统中,进而可以在告知第一应用系统在第二应用系统中登录成功后,将第二应用系统的登录页面调用至第一应用系统中,以在第一应用系统中再次验证上述用户名和登录密码的合法性,从而确保不同域名的系统之间的通信的安全性和可靠性。
进一步地,在上述任一实施例中,如图5所示,所述跨域通信系统400还包括:加密模块408,用于在所述处理模块406根据操作指令调用所述第二应用系统中的其他操作页面执行相应的操作的过程中,对所述第一应用系统和所述第二应用系统之间的通信数据进行加密。
在该实施例中,当在第一应用系统中成功登录第二应用系统后,进行第一应用系统和第二应用系统之间的跨域通信时,可以采用对二者之间的通信数据进行加密的方式确保跨域通信和值传递过程中信息的安全性。
进一步地,在上述任一实施例中,所述发送模块402还用于:向所述第一应用系统发送退出登录请求;所述管理模块404还用于:在所述第一应用系统中,根据所述退出登录请求调用所述第二应用系统的退出登录页面执行对所述第二应用系统的退出操作,并在所述第一应用系统和所述第二应用系统中清除浏览器缓存信息。
在该实施例中,当完成第一应用系统和第二应用系统之间的跨域通信,需要退出对第二应用系统的登录时,同样可以在第一应用系统接收到退出第二应用系统的退出登录请求时直接调用第二应用系统的退出登录页面执行退出登录的操作,无需切换系统,操作简单便捷,同时可以将第一应用系统和第二应用系统中当前次跨域通信过程中产生的浏览器缓存信息,比如用户名、登录密码等登录验证信息、用户浏览记录等,以确保用户的信息安全,进一步提高跨域通信的安全性和可靠性。
进一步地,在上述任一实施例中,所述登录请求和所述退出登录请求均为HTTP请求,即用于在第一应用系统中登录第二应用系统的登录请求和退出第二应用系统的退出登录请求均为HTTP请求的形式,以使在浏览器更加高效,并可以有效减少网络传输。
下面结合图6和图7对本发明的另一实施例的跨域通信方法进行详细说明。
如图6所示,当在用户浏览器中向第三方系统A(即第一应用系统)提交登录第三方系统B(即第二应用系统)的登录请求时,在第三方系统A中调用第三方系统B的登录页面,并在第三方系统B中对用户的身份验证通过成功登录后,向第三方系统A返回单点登录字符串,进而在第三方系统A中进行用户判断,即再次对用好的身份进行验证,进一步地,若第三方系统A中不存在该用户则创建该用户,但是,在该第三方系统A中无需保存相应的登录第三方系统B的用户登录密码,进而在验证成功后在第三方系统A进行登录第三方系统B的设置,并返回登录成功页面及单点登录字符串,继而可以进一步调用第三方系统B的各子系统实现进一步的跨域通信,以有效地缓解高并发的问题。
如图7所示,当用户需要退出对第三方系统B的登录时,通过用户浏览器向第三方系统A提交退出第三方系统B的退出请求,进而可以在第三方系统A中直接调用第三方系统B的退出页面,并由第三方系统B直接调用其各子系统的退出页面执行退出操作,同时清除跨域通信过程中产生的浏览器缓存,以有效地缓解高并发的问题。
进一步地,在该实施例中,为了达到快捷和安全的目的,可以采用HTTP服务的方式对外提供认证鉴权,采用HTTP、HTTPs(Hyper Text Transfer Protocol over SecureSocket Layer,以安全为目标的HTTP通道,网络协议)、MD5(Message Digest AlgorithmMD5,消息摘要算法第五版)加密、随机算法、神经网络等提供跨域通信过程的数据加密功能。
进一步地,在该实施例中,当登录第三方系统B成功后,返回的单点登录字符串可以为JSONP数据包的形式。
其中,JSONP(JSON with Padding)是JSON(JavaScript ObjectNotation,JavaScript(一种直译式脚本语言)对象表示法)的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于server1.example.com的网页无法与不是server1.example.com的服务器沟通,而HTML(Hyper Text MarkupLanguage,超级文本标记语言)的<script>(脚本)元素是一个例外。利用<script>元素的这个开放策略,网页可以得到从其他来源动态产生的JSON资料,而这种使用模式就是所谓的JSONP。用JSONP抓到的资料并不是JSON,而是任意的JavaScript,解析相应的数据资料时,用JavaScript直译器执行而不是用JSON解析器解析。
另外,HttpClient是Apache Jakarta Common下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。如此,基于JSONP和HttpClient即可方便地实现跨域通信。
另外,VSFTP是一个基于GPL(General Public License,通用公共许可证)发布的类Unix(Unix-like,其中,Unix为尤尼斯)系统上使用的FTP服务器软件,它的全称是VerySecure FTP,用户实现文件或信息的安全上传。
以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,可以在访问网站时,实现具有不同域名的系统之间的便捷通信以及值的顺利传递,同时可以有效地解决跨域通信和值传递过程中信息的安全性以及有效地缓解高并发的问题,从而提升用户体验。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。