欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种跨域统一登录方法和装置独创技术26218字

一种跨域统一登录方法和装置

2021-02-02 22:14:43

一种跨域统一登录方法和装置

  技术领域

  本发明涉及跨域登录技术领域,尤其涉及一种跨域统一登录方法和装置。

  背景技术

  随着公司活动业务快速发展,各业务板块的应用系统趋于进行更高细粒度的分割。由此,使用的域名也越来越多。而用户在访问不同网站时,往往都需要进行登录操作,以实现对网站的访问。

  现有技术主要通过跨域统一登录来避免用户访问不同网站时需要重复登录的情况,提高了网站的用户体验。

  目前的跨域统一登录方案,主要是用户登录到通行证系统,然后通行证系统直接访问各个网站的接口,并设置cookie,等用户再次访问其他网站时,获取cookie到通行证系统中进行是否登录的验证,从而实现统一登录。

  然而,当某网站应用需要升级维护以致无法达到全天候的正常运行时,会出现在登录时遗漏该网站的免登录访问。

  发明内容

  本发明提供了一种跨域统一登录方法和装置,用于解决现有技术在网站应用需要升级维护以致无法达到全天候的正常运行时,会出现在登录时遗漏该网站的免登录访问的技术问题。

  本发明提供的一种跨域统一登录方法,应用于统一登录系统,所述统一登录系统中登记有多个二级域名;所述方法包括:

  接收用户访问预设网站的登录请求;所述登录请求包含登录信息;

  获取所述预设网站的cookie信息,并采用所述cookie信息判断所述用户是否登录成功;

  当所述用户未登录成功时,对所述登录信息进行登录验证;

  当验证通过时,生成所述预设网站的唯一标识码;

  遍历多个所述二级域名,基于所述二级域名和所述唯一标识码生成重定向地址;

  依次将所述登录请求重定向至每一个所述重定向地址,并在所述重定向地址的二级域名的cookie中设置所述唯一标识码;

  当多个所述二级域名遍历结束后,将所述登录信息重定向至所述预设网站进行登录。

  可选地,所述获取所述预设网站的cookie信息,并采用所述cookie信息判断所述用户是否登录成功的步骤,包括:

  获取所述预设网站的cookie信息,判断所述cookie信息中是否存在所述预设网站的已登录唯一标识码;

  若所述cookie信息中不存在所述预设网站的已登录唯一标识码,则判定所述用户未登录成功。

  可选地,还包括:

  若所述cookie信息中存在所述预设网站的已登录唯一标识码,且预设会话存储服务中存在所述已登录唯一标识码对应的用户会话信息,则判定登录成功。

  可选地,所述当验证通过时,生成所述预设网站的唯一标识码的步骤,包括:

  当验证通过时,获取当前系统时间戳,对所述当前系统时间戳和所述登录信息进行加密,生成所述预设网站的唯一标识码。

  可选地,所述当验证通过时,生成所述预设网站的唯一标识码的步骤之后,还包括:

  在所述会话存储服务中保存所述唯一标识码。

  可选地,所述遍历多个所述二级域名,基于所述二级域名和所述唯一标识码生成重定向地址的步骤,包括:

  遍历多个所述二级域名,依次在所述二级域名上拼接预设字段生成对应的三级域名;

  依次在每一个所述三级域名中拼接所述唯一标识码生成重定向地址。

  本发明提供的一种跨域统一登录装置,应用于统一登录系统,所述统一登录系统中登记有多个二级域名;所述装置包括:

  登录请求接收模块,用于接收用户访问预设网站的登录请求;所述登录请求包含登录信息;

  判断模块,用于获取所述预设网站的cookie信息,并采用所述cookie信息判断所述用户是否登录成功;

  登录验证模块,用于当所述用户未登录成功时,对所述登录信息进行登录验证;

  唯一标识码生成模块,用于当验证通过时,生成所述预设网站的唯一标识码;

  重定向地址生成模块,用于遍历多个所述二级域名,基于所述二级域名和所述唯一标识码生成重定向地址;

  唯一标识码设置模块,用于依次将所述登录请求重定向至每一个所述重定向地址,并在所述重定向地址的二级域名的cookie中设置所述唯一标识码;

  重定向模块,用于当多个所述二级域名遍历结束后,将所述登录信息重定向至所述预设网站进行登录。

  可选地,所述判断模块,包括:

  判断子模块,用于获取所述预设网站的cookie信息,判断所述cookie信息中是否存在所述预设网站的已登录唯一标识码;

  未登录成功判定子模块,用于若所述cookie信息中不存在所述预设网站的已登录唯一标识码,则判定所述用户未登录成功。

  可选地,所述判断模块还包括:

  登录成功判定子模块,用于若所述cookie信息中存在所述预设网站的已登录唯一标识码,且预设会话存储服务中存在所述已登录唯一标识码对应的用户会话信息,则判定登录成功。

  可选地,所述唯一标识码生成模块,包括:

  唯一标识码生成子模块,用于当验证通过时,获取当前系统时间戳,对所述当前系统时间戳和所述登录信息进行加密,生成所述预设网站的唯一标识码。

  可选地,还包括:

  保存模块,用于在所述会话存储服务中保存所述唯一标识码。

  可选地,所述重定向地址生成模块,包括:

  三级域名生成子模块,用于遍历多个所述二级域名,依次在所述二级域名上拼接预设字段生成对应的三级域名;

  重定向地址生成子模块,用于依次在每一个所述三级域名中拼接所述唯一标识码生成重定向地址。

  本发明提供的一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的跨域统一登录方法的步骤。

  本发明提供的一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被所述处理器执行时实现如上任一项所述的跨域统一登录方法。

  从以上技术方案可以看出,本发明具有以下优点:本发明在初次登录预设网站时,生成预设网站的唯一标识码,并基于该唯一标识码和二级域名生成重定向地址,在将登录请求重定向至每个重定向地址时,在二级域名的cookie中设置唯一标识码。由于每次重定向指向的地址均是统一登录系统,且每次重定向时都对当前请求域名的二级域名设置一次cookie,基于下级域名可共享上级域名cookie的原理,可实现三级域名所对应的网站无感的跨域统一登录的目的。由于本发明并未实际访问三级域名对应的网站,因此,即使网站应用需要升级维护以致无法达到全天候的正常运行时,也可实现对该网站的免登录访问。

  附图说明

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

  图1为本发明实施例提供的一种跨域统一登录方法的步骤流程图;

  图2为本发明实施例提供的一种判断用户是否登录成功的步骤流程图;

  图3为本发明实施例提供的一种通过第三方平台授权登录的流程图;

  图4为本发明实施例提供的一种生成重定向地址的步骤流程图;

  图5为本发明实施例提供的一种重定向登录的流程图;

  图6为本发明实施例提供的一种跨域统一登录方法的流程图;

  图7为本发明实施例提供的一种跨域统一登录装置的结构框图。

  具体实施方式

  本发明实施例提供了一种跨域统一登录方法和装置,用于解决现有技术在网站应用需要升级维护以致无法达到全天候的正常运行时,会出现在登录时遗漏该网站的免登录访问的技术问题。

  为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

  请参阅图1,图1为本发明实施例提供的一种跨域统一登录方法的步骤流程图。

  本发明提供的一种跨域统一登录方法,应用于统一登录系统,统一登录系统中登记有多个二级域名;包括:

  步骤101,接收用户访问预设网站的登录请求;登录请求包含登录信息;

  在本发明实施例中,当用户访问预设网站时,通过填写登录信息(包括用户名、密码、验证码信息)生成登录请求,并点击网站的登录地址,可跳转至统一登录系统,浏览器会将用户填写的登录信息以及cookie信息提交给统一登录系统。

  步骤102,获取预设网站的cookie信息,并采用cookie信息判断所述用户是否登录成功;

  统一登录系统在接收到用户提交的登录信息,可以根据cookie信息判断用户是否成功登录网站。

  在一个示例中,请参阅图2,步骤102可以包括以下子步骤:

  S11,获取预设网站的cookie信息,判断cookie信息中是否存在预设网站的唯一标识码;

  S12,若cookie信息中不存在预设网站的已登录唯一标识码,则判定用户未登录成功。

  S13,若cookie信息中存在预设网站的已登录唯一标识码,且预设会话存储服务中存在已登录唯一标识码对应的用户会话信息,则判定登录成功。

  具体地,统一登录系统接收到用户提交的登录信息后,首先检查预设网站的cookie信息中是否存在已登记的唯一标识码(common_session_id),如果cookie信息中存在预设网站已登录的唯一标识码,且在会话存储服务中存在已登录唯一标识码对应的会话信息,则判定用户登录成功,此时可以向用户直接返回对应的网站信息。如果不存在则认为用户未曾登录。

  步骤103,当所述用户未登录成功时,对所述登录信息进行登录验证;

  在本发明实施例中,可以根据第三方平台授权登录、手机号登录、账号密码登录三种方法进行登录验证,判断登录信息是否正确。

  以第三方平台授权登录为例,第三方平台(如微信公众号、微信小程序、支付宝、百度小程序等)授权登录支持OAuth2.0授权标准,OAuth(开放授权)是一个互联网的标准协议,OAuth2.0是OAuth协议的延续版本。OAuth允许用户授权第三方网站或应用,访问用户存储在其它网站上的资源,而不需要将用户名和密码提供给第三方网站或分享他们数据的内容。

  具体流程如图3所示,包括:

  a、用户在网站、手机APP、企业应用等选择第三方平台授权登录,则统一登录系统向第三方平台的资源拥有者请求授权。

  b、第三方平台的资源拥有者同意授权,并重定向到事先指定的地址,同时附加上一个授权码,即token。

  c、统一登录系统根据资源拥有者返回的授权码,向第三方平台的授权服务器获取访问令牌。

  d、第三方平台的授权服务器向统一登录系统返回访问令牌,即access token,并且刷新访问令牌。

  e、统一登录系统通过访问令牌从第三方平台的资源服务器处获取受保护的资源。

  f、第三方平台返回相应的资源(第三方平台ID、头像、昵称等)。同时统一登录系统将用户账号(如新用户则生成一个新的用户账号)与第三方平台返回的平台ID进行绑定映射,完成授权验证。

  以手机号登录验证为例,验证过程具体可以包括以下步骤:

  a1、用户在网站、手机APP、企业应用等选择手机号登录验证,并输入手机号。

  b1、统一登录系统验证手机号格式是否正确,如验证手机号是否由预定长度的数字组成。

  c1、当验证手机号格式正确时,生成验证码,并向绑定该手机号的手机发送短信验证码。

  d1、用户输入短信验证码。

  e1、统一登录系统判断验证码是否正确,若正确,则判定登录信息通过登录验证。

  f1、统一登录系统将用户账号(如新用户则生成一个新的用户账号)与手机号进行绑定映射。

  以账号密码登录验证为例,验证过程具体可以包括以下步骤:

  a2、用户在网站、手机APP、企业应用等选择账号密码登录验证,并输入账号密码。

  b2、统一登录系统接收到账号密码后,将账号密码进行MD5加密,然后查询统一登录系统中是否存在与用户填写的账号密码一致的用户,如果存在则判定通过验证。

  步骤104,当验证通过时,生成预设网站的唯一标识码;

  在本发明实施例中,当登录信息通过了登录验证时,可以从登录信息获取用户的IP、账号ID,结合当前系统时间戳进行MD5加密,作为用户此次登录的唯一标识码。

  MD5是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

  进一步地,在生成了用户此次登录的唯一标识码后,还需要将该唯一标识码保存在会话存储服务中,用于在下次访问该网站时进行免登录验证。

  步骤105,遍历多个二级域名,基于二级域名和唯一标识码生成重定向地址;

  在本发明实施例中,统一登录系统中登记了多个二级域名。在生成用户此次登录的唯一标识码后,可以遍历统一登录系统中所有的二级域名,基于二级域名和唯一标识码生成重定向地址。

  在一个示例中,如图4所示,步骤105可以包括以下子步骤:

  S21,遍历多个二级域名,依次在二级域名上拼接预设字段生成对应的三级域名;

  S22,依次在每一个三级域名中拼接唯一标识码生成重定向地址。

  具体地,在本发明实施例中,在生成用户此次登录的唯一标识码后,可以循环遍历已登记在统一登录系统中的二级域名,并在二级域名中拼接上“passport”形成三级域名,同时拼接上用户此次登录的唯一标识码形成需重定向的访问地址。

  在一个示例中,所形成的重定向地址可以如下所示:

  http://passport.pconline.com.cn/passport3/c?s=F2DD2BBFC93AEB370C4885A9EF4B7F9050F98349BB149AF913863DFC1B50CB28812F6BF71F5110A3&u=mb49640359&auto=90&r=http://passport.pcauto.com.cn/passport3/c?s=&r=http://passport.pcbaby.com.cn/passport3/c?s=&r=http://passport3.pchouse.com.cn/passport3/c?s=&r=。

  步骤106,依次将登录请求重定向至每一个重定向地址,并在重定向地址的二级域名的cookie中设置唯一标识码;

  步骤107,当多个二级域名遍历结束后,将登录信息重定向至预设网站进行登录。

  在本发明实施例中,在形成重定向地址后,将登录请求的访问重定向到重定向地址,目标地址接收到请求后,将接收的请求参数中的用户唯一标识码设置到二级域名的cookie中并且作为下次重定向请求的用户唯一标识码,向后面的每次请求依次传递;然后再将请求重定向到下一地址,依次类推,直至所有登记的二级域名均完成访问为止。

  以统一登录系统中已登记的二级域名对应的网站包括电脑网、汽车网、亲子网、家居网为例,每次重定向地址如表1所示:

  

  表1

  在本发明实施例中,由于每次重定向指向的地址均是统一登录系统,并且每次接收重定向请求时都对当前请求域名的二级域名设置一次cookie。根据浏览器下级域名可共享上级域名cookie的原理,此二级域名对应的三级域名共享该cookie信息,即所有三级域名所对应的网站都会共享该cookie,从而实现目标网站无感的跨域统一登录的目的。

  为便于理解,以表1的重定向地址为基础,对本发明实施例重定向登录的流程进行说明。请参阅图5,图5为本发明实施例提供的重定向登录的流程图。

  在本发明实施例中,在形成重定向地址后,首先将登录请求进行第一次重定向,并接收针对passport3.pconline.com.cn的重定向请求,并对其二级域名pconline.com.cn设置cookie;接着进行第二次重定向,接收针对passport3.pcauto.com.cn的重定向请求,并对其二级域名pcauto.com.cn设置cookie;然后进行第三次重定向,接收针对passport3.pcbaby.com.cn的重定向请求,并对其二级域名pcbaby.com.cn设置cookie;最后进行第四次重定向,接着针对passport3.pchouse.com.cn的重定向请求,并对其二级域名pchouse.com.cn设置cookie;至此,所有二级域名均已访问,登录成功重定向为初始登录的网站。

  本发明在初次登录预设网站时,生成预设网站的唯一标识码,并基于该唯一标识码和二级域名生成重定向地址,在将登录请求重定向至每个重定向地址时,在二级域名的cookie中设置唯一标识码。由于每次重定向指向的地址均是统一登录系统,且每次重定向时都对当前请求域名的二级域名设置一次cookie,基于下级域名可共享上级域名cookie的原理,可实现三级域名所对应的网站无感的跨域统一登录的目的。由于本发明并未实际访问三级域名对应的网站,因此,即使网站应用需要升级维护以致无法达到全天候的正常运行时,也可实现对该网站的免登录访问。

  为便于理解,下面通过具体示例对本发明实施例提供的一种跨域统一登录方法的流程进行说明。

  请参阅图6,图6为本发明实施例提供的一种跨域统一登录方法的流程图。

  如图6所示,当用户初始访问统一登录系统中登记的电脑网时,由于是初始登录,因此统一登录系统中并未有电脑网此次登录的唯一识别码,因此需要对其进行登录验证。具体可以通过第三方平台授权登录验证、手机号登录验证和账号密码登录验证三种方式进行登录验证。当验证通过后,采用用户IP、账号ID和当前系统时间戳进行MD5加密作为用户此次登录的唯一标识码,并将该唯一标识码保存在统一登录系统的会话存储服务中。接着对二级域名登记表中的二级域名设置三级域名,并循环访问三级域名,对对应的二级域名设置cookie。当所有二级域名均设置了二级域名后,完成登录并向用户返回电脑网的相应界面。此后,当用户再次对统一登录系统中的其它网站(如汽车网、亲子网和家居网)进行访问时,只需要获取相应的cookie进行登录验证即可。

  请参阅图7,图7为本发明实施例提供的一种跨域统一登录装置的结构框图。

  本发明提供的一种跨域统一登录装置,应用于统一登录系统,统一登录系统中登记有多个二级域名;装置包括:

  登录请求接收模块701,用于接收用户访问预设网站的登录请求;登录请求包含登录信息;

  判断模块702,用于获取预设网站的cookie信息,并采用cookie信息判断用户是否登录成功;

  登录验证模块703,用于当用户未登录成功时,对登录信息进行登录验证;

  唯一标识码生成模块704,用于当验证通过时,生成预设网站的唯一标识码;

  重定向地址生成模块705,用于遍历多个二级域名,基于二级域名和唯一标识码生成重定向地址;

  唯一标识码设置模块706,用于依次将登录请求重定向至每一个重定向地址,并在重定向地址的二级域名的cookie中设置唯一标识码;

  重定向模块707,用于当多个二级域名遍历结束后,将登录信息重定向至预设网站进行登录。

  可选地,判断模块702,包括:

  判断子模块,用于获取预设网站的cookie信息,判断cookie信息中是否存在预设网站的已登录唯一标识码;

  未登录成功判定子模块,用于若cookie信息中不存在预设网站的已登录唯一标识码,则判定用户未登录成功。

  可选地,判断模块702还包括:

  登录成功判定子模块,用于若cookie信息中存在预设网站的已登录唯一标识码,且预设会话存储服务中存在已登录唯一标识码对应的用户会话信息,则判定登录成功。

  可选地,唯一标识码生成模块704,包括:

  唯一标识码生成子模块,用于当验证通过时,获取当前系统时间戳,对当前系统时间戳和登录信息进行加密,生成预设网站的唯一标识码。

  可选地,还包括:

  保存模块,用于在会话存储服务中保存唯一标识码。

  可选地,重定向地址生成模块705,包括:

  三级域名生成子模块,用于遍历多个二级域名,依次在二级域名上拼接预设字段生成对应的三级域名;

  重定向地址生成子模块,用于依次在每一个三级域名中拼接唯一标识码生成重定向地址。

  本发明提供的一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一实施例所述的跨域统一登录方法的步骤。

  本发明提供的一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被所述处理器执行时实现如上任一实施例所述的跨域统一登录方法。

  所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

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

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

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

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

《一种跨域统一登录方法和装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)