CN109246076A - 一种单点登录多***的方法和装置 - Google Patents

一种单点登录多***的方法和装置 Download PDF

Info

Publication number
CN109246076A
CN109246076A CN201810864122.3A CN201810864122A CN109246076A CN 109246076 A CN109246076 A CN 109246076A CN 201810864122 A CN201810864122 A CN 201810864122A CN 109246076 A CN109246076 A CN 109246076A
Authority
CN
China
Prior art keywords
user
user information
log
server
unique identity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810864122.3A
Other languages
English (en)
Other versions
CN109246076B (zh
Inventor
韩竞竞
李欣
龙慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201810864122.3A priority Critical patent/CN109246076B/zh
Publication of CN109246076A publication Critical patent/CN109246076A/zh
Application granted granted Critical
Publication of CN109246076B publication Critical patent/CN109246076B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种单点登录多***的方法和装置。通过在完成验证登录单一***后,将用户唯一身份标识写入完成登录后的***的cookie中,并将用户信息写入redis服务器,进而在请求登录其他一个或多个相关***时,对于同域的待登录***,从该cookie中读取用户唯一身份标识,并根据用户唯一身份标识从redis服务器拉取对应的用户信息,从而实现对该待登录***的自动登录。进一步地,对于跨域的待登录***,通过设置信任列表,对于在信任列表中的待登录***按照同域***的方式进行操作,实现自动登录。本发明实现了在同域和跨域的情况下,单一***登录后,其他相关***不必重复登录的功能。

Description

一种单点登录多***的方法和装置
技术领域
本发明涉及计算机技术领域,特别是一种单点登录多***的方法、单点登录多***的装置、计算机存储介质以及计算设备。
背景技术
在实际应用中,用户在工作、休闲等场合经常会需要登录多个***进行处理操作,这些***间往往存在一定关联,因此用户可采用与用户的唯一身份标识对应的同一用户账号和密码来登录这些***。例如,对于企业的每位员工来说,在其工作期间,可能需要登录企业的人力资源***、工作日志***、产品评测***、产品发布***等多个***。通常,企业会为每位员工分配用户唯一身份标识,从而每位员工能够以与其用户唯一身份标识对应的用户账号和密码来登录上述这些***,方便企业的管理。现有技术中,在登录上述这些***时,需要用户以该用户账号和密码逐一登录这些***,操作繁琐,用户体验差。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的单点登录多***的方法、单点登录多***的装置、计算机存储介质以及计算设备。
根据本发明实施例的一方面,提供了一种单点登录多***的方法,应用于单点登录服务器,包括:
步骤1:接收来自浏览器侧的对待登录***的登录请求;
步骤2:判断所述浏览器侧是否存在在先***完成登录后保存的当前cookie;
若否,则执行步骤3:发送验证请求至登录信息服务器,当所述登录信息服务器根据所接收的验证请求对输入的用户信息进行验证并通过后,接收所述登录信息服务器返回的验证通过信息,从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识,将所述用户唯一身份标识写入所述待登录***的cookie中,并将所述用户信息写入redis服务器,从而完成登录所述待登录***;
若是,则执行步骤4:比较所述待登录***的父域名与所述当前cookie对应的***的父域名是否相同;
若相同,则执行步骤5:读取所述当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从所述redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将所述待登录***的登录状态设置为已登录,从而实现对所述待登录***的自动登录;
其中,还采用上述步骤,实现对其他一个或多个待登录***的自动登录。
可选地,在步骤4之后,所述方法还包括:
步骤6:若所述待登录***的父域名与所述当前cookie对应的***的父域名不同,则判断所述待登录***的域名是否在指定信任列表中;
若所述待登录***的域名在所述指定信任列表中,则执行步骤5;
若所述待登录***的域名不在所述指定信任列表中,则拒绝登录。
可选地,在步骤3中,所述验证请求携带有所述待登录***的统一资源定位符URL;
所述验证通过信息携带有所述待登录***的URL和所述登录信息服务器在对输入的用户信息进行验证并通过后生成的用户信息获取钥匙;
从所述登录信息服务器获取所述用户信息和对应的用户唯一身份标识,包括:
调用所述单点登录服务器的第一用户信息获取接口,向所述登录信息服务器发送携带所述用户信息获取钥匙的第一用户信息获取请求,并接收所述登录信息服务器根据所述第一用户信息获取请求返回的与所述用户信息获取钥匙对应的用户信息和用户唯一身份标识。
可选地,在步骤3中,将所述用户信息写入redis服务器,包括:
通过调用所述单点登录服务器的指定写入接口将所述用户信息写入redis服务器。
可选地,在步骤5中,根据所读取的用户唯一身份标识从所述redis服务器拉取与该用户唯一身份标识对应的用户信息,包括:
调用所述单点登录服务器的第二用户信息获取接口,向所述redis服务器发送携带有所读取的用户唯一身份标识的第二用户信息获取请求,并接收所述redis服务器根据所述第二用户信息获取请求返回的与该用户唯一身份标识对应的用户信息。
可选地,所述redis服务器中写入的用户信息设置有过期时间,此时,
接收所述redis服务器根据所述第二用户信息获取请求返回的与该用户唯一身份标识对应的用户信息,包括:
当所述redis服务器在接收到所述携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身查找到与该读取的用户唯一身份标识对应的用户信息时,接收所述redis服务器返回的与该用户唯一身份标识对应的用户信息;
当所述redis服务器在接收到所述携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身未查找到与该读取的用户唯一身份标识对应的用户信息时,接收所述redis服务器返回的指示未获取成功的信息,并执行步骤3。
可选地,在步骤3中,从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识之后,还包括:
将所述用户信息写入所述待登录***的session中。
可选地,在步骤1之后且步骤2之前,所述方法还包括:
判断是否存在所述待登录***的session;
若存在,则读取所述待登录***的session中保存的用户信息;
根据所述用户信息将所述待登录***的登录状态设置为已登录,从而实现自动登录所述待登录***;
若不存在,则执行步骤2。
可选地,所述用户唯一身份标识包括用户邮箱的MD5值;
所述用户信息包括用户登录账号和密码。
可选地,与所述登录信息服务器和所述redis服务器之间的信息传输采用https协议进行。
根据本发明实施例的另一方面,还提供了一种单点登录多***的装置,应用于单点登录服务器,包括:
登录请求接收模块,适于执行步骤1:接收来自浏览器侧的对待登录***的登录请求;
cookie判断模块,适于执行步骤2:判断所述浏览器侧是否存在在先***完成登录后保存的当前cookie;
验证登录模块,适于若所述浏览器侧不存在在先***完成登录后保存的当前cookie,则执行步骤3:发送验证请求至登录信息服务器,当所述登录信息服务器根据所接收的验证请求对输入的用户信息进行验证并通过后,接收所述登录信息服务器返回的验证通过信息,从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识,将所述用户唯一身份标识写入所述待登录***的cookie中,并将所述用户信息写入redis服务器,从而完成登录所述待登录***;
同域/跨域判断模块,适于若所述浏览器侧存在在先***完成登录后保存的当前cookie,则执行步骤4:比较所述待登录***的父域名与所述当前cookie对应的***的父域名是否相同;以及
同域自动登录模块,适于若所述待登录***的父域名与所述当前cookie对应的***的父域名相同,则执行步骤5:读取所述当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从所述redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将所述待登录***的登录状态设置为已登录,从而实现对所述待登录***的自动登录;
其中,还采用上述模块执行相应步骤,实现对其他一个或多个待登录***的自动登录。
可选地,所述装置还包括:
跨域自动登录模块,适于在所述同域/跨域判断模块执行所述步骤4之后,执行步骤6:若所述待登录***的父域名与所述当前cookie对应的***的父域名不同,则判断所述待登录***的域名是否在指定信任列表中;
若所述待登录***的域名在所述指定信任列表中,则触发所述同域自动登录模块执行步骤5;
若所述待登录***的域名不在所述指定信任列表中,则拒绝登录。
可选地,所述验证请求携带有所述待登录***的统一资源定位符URL;
所述验证通过信息携带有所述待登录***的URL和所述登录信息服务器在对输入的用户信息进行验证并通过后生成的用户信息获取钥匙;
所述验证登录模块还适于:
调用所述单点登录服务器的第一用户信息获取接口,向所述登录信息服务器发送携带所述用户信息获取钥匙的第一用户信息获取请求,并接收所述登录信息服务器根据所述第一用户信息获取请求返回的与所述用户信息获取钥匙对应的用户信息和用户唯一身份标识。
可选地,所述验证登录模块还适于:
通过调用所述单点登录服务器的指定写入接口将所述用户信息写入redis服务器。
可选地,所述同域自动登录模块还适于:
调用所述单点登录服务器的第二用户信息获取接口,向所述redis服务器发送携带有所读取的用户唯一身份标识的第二用户信息获取请求,并接收所述redis服务器根据所述第二用户信息获取请求返回的与该用户唯一身份标识对应的用户信息。
可选地,所述redis服务器中写入的用户信息设置有过期时间,此时,
所述同域自动登录模块还适于:
当所述redis服务器在接收到所述携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身查找到与该读取的用户唯一身份标识对应的用户信息时,接收所述redis服务器返回的与该用户唯一身份标识对应的用户信息;
当所述redis服务器在接收到所述携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身未查找到与该读取的用户唯一身份标识对应的用户信息时,接收所述redis服务器返回的指示未获取成功的信息,并触发所述验证登录模块执行步骤3。
可选地,所述验证登录模块还适于:
从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识之后,将所述用户信息写入所述待登录***的session中。
可选地,所述装置还包括:
基于session的登录模块,适于:在所述登录请求接收模块执行步骤1之后且所述cookie判断模块执行步骤2之前,判断是否存在所述待登录***的session;
若存在,则读取所述待登录***的session中保存的用户信息;
根据所述用户信息将所述待登录***的登录状态设置为已登录,从而实现自动登录所述待登录***;
若不存在,则触发所述cookie判断模块执行步骤2。
可选地,所述用户唯一身份标识包括用户邮箱的MD5值;
所述用户信息包括用户登录账号和密码。
可选地,所述装置与所述登录信息服务器和所述redis服务器之间的信息传输采用https协议进行。
根据本发明实施例的再一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据上文中任一项所述的单点登录多***的方法。
根据本发明实施例的又一方面,还提供了一种计算设备,包括:
处理器;以及
存储有计算机程序代码的存储器;
当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行根据上文中任一项所述的单点登录多***的方法。
本发明实施例提出的单点登录多***的方法和装置,实现了单一***登录后,其他相关***不必重复登录的功能。首先,在接收到来自浏览器侧的对待登录***的登录请求后,判断出浏览器侧不存在在先***完成登录后保存的当前cookie,则跳转至登录信息服务器,输入用户信息进行登录验证;通过验证登录成功后,从登录信息服务器获取用户信息和对应的用户唯一身份标识,将用户唯一身份标识写入该待登录***的cookie中,并将用户信息写入redis服务器。然后,在接收到来自浏览器侧的对另一待登录***的登录请求后,判断出此时浏览器侧存在前一***完成登录后保存的当前cookie,比较当前待登录***的父域名与当前cookie对应的前一***的父域名是否相同;若相同,即,当前待登录***与当前cookie对应的前一***为同域***,则读取当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将当前待登录***的登录状态设置为已登录,从而实现对当前待登录***的自动登录。通过根据在先***完成登录后保存的cookie去获取用户的登录信息,进而自动登录与在先***同域的其它相关***,实现了在同域情况下,通过一次登录验证操作登录多个***的功能。
进一步地,若比较得出当前待登录***的父域名与当前cookie对应的前一***的父域名不同,即,当前待登录***与当前cookie对应的前一***为跨域***,则判断当前待登录***的域名是否在指定信任列表中,若是,则按照同域***的方式进行操作,实现自动登录,若否,则拒绝登录。通过设置信任列表,进一步实现了在跨域情况下,通过一次登录验证操作登录多个***的功能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一实施例的单点登录多***的方法的流程图;
图2示出了根据本发明另一实施例的单点登录多***的方法的流程图;
图3示出了根据本发明一实施例的单点登录多***的装置的结构示意图;以及
图4示出了根据本发明另一实施例的单点登录多***的装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提出一种单点登录多***的方法。图1示出了根据本发明一实施例的单点登录多***的方法的流程图。参见图1,该方法应用于单点登录服务器,可以包括以下步骤1至步骤5。
步骤1,接收来自浏览器侧的对待登录***的登录请求。
步骤2,判断浏览器侧是否存在在先***完成登录后保存的当前cookie。
步骤3,若否,则发送验证请求至登录信息服务器,当登录信息服务器根据所接收的验证请求对输入的用户信息进行验证并通过后,接收登录信息服务器返回的验证通过信息,从登录信息服务器获取用户信息和与用户信息对应的用户唯一身份标识,将用户唯一身份标识写入待登录***的cookie中,并将用户信息写入redis服务器,从而完成登录该待登录***。
步骤4,若是,则比较待登录***的父域名与当前cookie对应的***的父域名是否相同。
步骤5,若相同,则读取当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将待登录***的登录状态设置为已登录,从而实现对待登录***的自动登录。
进一步地,该方法还包括采用上述步骤,实现对其他一个或多个待登录***的自动登录。
本发明实施例提出的单点登录多***的方法,实现了单一***登录后,其他相关***不必重复登录的功能。首先,在接收到来自浏览器侧的对待登录***的登录请求后,判断出浏览器侧不存在在先***完成登录后保存的当前cookie,则跳转至登录信息服务器,输入用户信息进行登录验证;通过验证登录成功后,从登录信息服务器获取用户信息和对应的用户唯一身份标识,将用户唯一身份标识写入该待登录***的cookie中,并将用户信息写入redis服务器。然后,在接收到来自浏览器侧的对另一待登录***的登录请求后,判断出此时浏览器侧存在前一***完成登录后保存的当前cookie,比较当前待登录***的父域名与当前cookie对应的前一***的父域名是否相同;若相同,即,当前待登录***与当前cookie对应的前一***为同域***,则读取当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将当前待登录***的登录状态设置为已登录,从而实现对当前待登录***的自动登录。通过根据在先***完成登录后保存的cookie去获取用户的登录信息,进而自动登录与在先***同域的其它相关***,实现了在同域情况下,通过一次登录验证操作登录多个***的功能。
上文提及的待登录***与在先***可以是以同一用户账号和密码进行登录的相关***。
上文步骤3中,所提及的验证请求可以携带有待登录***的URL(Uniform ResoureLocator,统一资源定位符)。登录信息服务器接收到该验证请求后,显示一个登录页面以供输入用户信息。然后,登录信息服务器对输入的用户信息进行验证,若通过,则生成一用户信息获取钥匙,并向单点登录服务器返回验证通过信息,其中,验证通过信息中携带有待登录***的URL和所生成的用户信息获取钥匙。进而,单点登录服务器在接收到验证通过信息后,调用其第一用户信息获取接口,向登录信息服务器发送携带该用户信息获取钥匙的第一用户信息获取请求,并接收登录信息服务器根据第一用户信息获取请求返回的与该用户信息获取钥匙对应的用户信息和用户唯一身份标识。此处,第一用户信息获取接口可以为get接口。进一步,为了确保请求获取用户信息的用户为刚刚登陆成功的用户,进而保证用户信息的安全,用户信息获取钥匙设置有有效时间,例如,有效时间为5-10秒。
在获取到用户信息和用户唯一身份标识后,单点登录服务器将用户唯一身份标识写入待登录***的cookie中并保存,并且通过调用其指定写入接口将用户信息写入redis服务器。
Redis(Remote Dictionary Server,远程字典服务器)是一种可基于内存亦可持久化的日志型、高性能的Key-Value数据库,可支持多种存储的value类型,包括字符串(string)、链表(list)、集合(set)、有序集合(sorted set)和哈希(hash)类型。Redis具有读写性能优异、支持数据持久化、支持主从复制、读写分离、数据结构丰富、可缓存消息、可设置过期时间等优点。
在本发明的可选实施例中,上文提及的用户唯一身份标识可以包括用户邮箱的MD5值。相应地,用户信息可以包括用户登录账号和密码。
上文步骤4中,若判断出浏览器侧存在在先***完成登录后保存的当前cookie,则比较待登录***的父域名与当前cookie对应的***的父域名是否相同。举例来说,假设待登录***域名为test.abc.net,则其父域名为abc.net;当前cookie对应的***的域名为hr.abc.cn,则其父域名为abc.cn。此时,比较abc.net与abc.cn是否相同。若相同,则继续执行步骤5,若不相同,则结束当前待登录***的登录流程。
上文步骤5中,若待登录***的父域名与当前cookie对应的***的父域名相同,则读取当前cookie中保存的用户唯一身份标识。进而,调用单点登录服务器的第二用户信息获取接口,向redis服务器发送携带有所读取的用户唯一身份标识的第二用户信息获取请求。redis服务器接收到第二用户信息获取请求后,在自身查找与该用户唯一身份标识对应的用户信息,并将查找到的用户信息返回给单点登录服务器。
进一步地,为了增强用户信息的安全,redis服务器中写入的用户信息设置有过期时间,例如,过期时间可以设置为24小时,过期后,redis服务器中存储的用户信息将自动删除。这样,可能出现在redis服务器中没有所需获取的用户信息的情况。此时,在redis服务器接收到携带有所读取的用户唯一身份标识的第二用户信息获取请求后,若在自身查找到与该读取的用户唯一身份标识对应的用户信息,则直接将查找到的用户信息返回给单点登录服务器。进而,单点登录服务器根据所接收的用户信息将待登录***的状态设置为已登录,从而实现对该待登录***的自动登录。
在redis服务器接收到携带有所读取的用户唯一身份标识的第二用户信息获取请求后,若在自身未查找到与该读取的用户唯一身份标识对应的用户信息,则向单点登录服务器返回指示未获取成功的信息。单点登录服务器在接收到指示未获取成功的信息后,执行上述步骤3,即,发送验证请求至登录信息服务器,当登录信息服务器根据所接收的验证请求对输入的用户信息进行验证并通过后,接收登录信息服务器返回的验证通过信息,从登录信息服务器获取用户信息和与用户信息对应的用户唯一身份标识,将用户唯一身份标识写入待登录***的cookie中,并将用户信息写入redis服务器,从而完成登录该待登录***。
在本发明的可选实施例中,在步骤3中,从登录信息服务器获取了用户信息和与该用户信息对应的用户唯一身份标识之后,还可以将用户信息写入待登录***的session中。
进一步地,在本待登录***登录验证成功之后,且在本待登录***的session失效之前,若需再次登录本待登录***,则可以在执行步骤2,即,判断浏览器侧是否存在在先***完成登录后保存的当前cookie之前,先判断是否存在本待登录***的session。若存在,则读取本待登录***的session中保存的用户信息,并根据该用户信息将本待登录***的登录状态设置为已登录,从而实现自动登录。若不存在,则继续执行步骤2,即,判断浏览器侧是否存在在先***完成登录后保存的当前cookie。
在根据本发明的另一实施例中,如图2所示,在执行步骤4之后,还可以包括以下步骤6。
若待登录***的父域名与当前cookie对应的***的父域名不同,则判断待登录***的域名是否在指定信任列表中;若待登录***的域名在指定信任列表中,则执行步骤5,即,读取当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将待登录***的登录状态设置为已登录,从而实现对待登录***的自动登录;若待登录***的域名不在指定信任列表中,则拒绝登录,结束当前待登录***的登录流程。
上文提及的指定信任列表可以由用户或单点登录服务器预先配置,在该指定信任列表中可以记录有以同一用户账号和密码进行登录、可信任的多个相关***的域名。
在本发明的可选实施例中,为了提高信息传输的安全性,单点登录服务器与登录信息服务器和redis服务器之间的信息传输采用https协议进行。https协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议,比http协议更加安全。
以上介绍了图1所示实施例的各个环节的多种实现方式,下面将通过具体实施例来详细介绍本发明的单点登录多***的方法的实现过程。
实施例一
在本发明的具体实施例一中,以单点登录以下三个***为例进行说明:人力资源***、工作日志***和产品发布***。
下面对本实施例提供的应用于单点登录服务器的一种单点登录多***的方法进行具体说明。其中,为方便说明,假设人力资源***、工作日志***和产品发布***为对于一用户来说可用同一用户账号和密码进行登录、可信任的相关***,它们的域名分别为hr.abc.net,blog.abc.net和product.abc.cn。单点登录服务器中预先配置有信任列表,该信任列表中记录有人力资源***、工作日志***和产品发布***的域名。
第一步,单点登录服务器接收来自浏览器侧的对人力资源***的登录请求。
第二步,单点登录服务器判断浏览器侧是否存在在先***完成登录后保存的当前cookie。由于人力资源***为本次用户登录的首个***,可判断出浏览器侧不存在在先***完成登录后保存的当前cookie。
第三步,首先,单点登录服务器发送携带有待登录的人力资源***的URL的验证请求至登录信息服务器,从而登录信息服务器在接收到该验证请求后,显示登录页面供用户输入用户信息进行验证,并在验证通过后生成用户信息获取钥匙,并返回携带有待登录的人力资源***的URL和该用户信息获取钥匙的验证通过信息。然后,单点登录服务器在接收到验证通过信息后,调用其第一用户信息获取接口,向登录信息服务器发送携带该用户信息获取钥匙的第一用户信息获取请求,并接收登录信息服务器根据第一用户信息获取请求返回的与该用户信息获取钥匙对应的用户信息和用户唯一身份标识。最后,单点登录服务器将用户唯一身份标识写入人力资源***的cookie中并保存,并调用其指定写入接口将用户信息写入redis服务器,从而完成登录人力资源***。
第四步,单点登录服务器接收来自浏览器侧的对工作日志***的登录请求。
第五步,单点登录服务器判断出浏览器侧存在作为在先***的人力资源***完成登录后保存的当前cookie。
第六步,单点登录服务器比较待登录的工作日志***的父域名与当前cookie对应的在先***(即,人力资源***)的父域名是否相同。由于工作日志***和人力资源***父域名均为abc.net,可得出比较结果为两者的父域名相同,即,待登录的工作日志***与当前cookie对应的人力资源***为同域***。
第七步,单点登录服务器读取当前cookie中保存的用户唯一身份标识,调用第二用户信息获取接口,向redis服务器发送携带有所读取的用户唯一身份标识的第二用户信息获取请求。redis服务器接收到第二用户信息获取请求后,在自身查找与该用户唯一身份标识对应的用户信息,并将查找到的用户信息返回给单点登录服务器。单点登录服务器根据所接收的用户信息将待登录的工作日志***的状态设置为已登录,从而实现对工作日志***的自动登录。
第八步,单点登录服务器接收来自浏览器侧的对产品发布***的登录请求。
第九步,单点登录服务器判断出浏览器侧存在作为在先***的人力资源***完成登录后保存的当前cookie。
第十步,单点登录服务器比较待登录的产品发布***的父域名与当前cookie对应的在先***(即,人力资源***)的父域名是否相同。由于产品发布***的父域名为abc.cn,而人力资源***的父域名为abc.net,可得出比较结果为两者的父域名不同,即,待登录的产品发布***与当前cookie对应的人力资源***为跨域***。
第十一步,单点登录服务器判断出待登录的产品发布***的域名在信任列表中,继而,单点登录服务器读取当前cookie中保存的用户唯一身份标识,调用第二用户信息获取接口,向redis服务器发送携带有所读取的用户唯一身份标识的第二用户信息获取请求。redis服务器接收到第二用户信息获取请求后,在自身查找与该用户唯一身份标识对应的用户信息,并将查找到的用户信息返回给单点登录服务器。单点登录服务器根据所接收的用户信息将待登录的产品发布***的状态设置为已登录,从而实现对产品发布***的自动登录,整个登录流程结束。
本实施例实现了单一***登录后,其他相关***不必重复登录的功能,并且支持同域和跨域的多个***的情况。
需要说明的是,实际应用中,上述所有可选实施方式可以采用结合的方式任意组合,形成本发明的可选实施例,在此不再一一赘述。
基于同一发明构思,本发明实施例还提供了一种单点登录多***的装置,应用于单点登录服务器,用于支持上述任意一个实施例或其组合所提供的单点登录多***的方法。图3示出了根据本发明一实施例的单点登录多***的装置的结构示意图。参见图3,该装置至少可以包括:登录请求接收模块310、cookie判断模块320、验证登录模块330、同域/跨域判断模块340和同域自动登录模块350。
现介绍本发明实施例的单点登录多***的装置的各组成或器件的功能以及各部分间的连接关系:
登录请求接收模块310,适于执行步骤1:接收来自浏览器侧的对待登录***的登录请求。
cookie判断模块320,与登录请求接收模块310连接,执行步骤2:判断浏览器侧是否存在在先***完成登录后保存的当前cookie。
验证登录模块330,与cookie判断模块320连接,适于若浏览器侧不存在在先***完成登录后保存的当前cookie,则执行步骤3:发送验证请求至登录信息服务器,当登录信息服务器根据所接收的验证请求对输入的用户信息进行验证并通过后,接收登录信息服务器返回的验证通过信息,从登录信息服务器获取用户信息和与用户信息对应的用户唯一身份标识,将用户唯一身份标识写入待登录***的cookie中,并将用户信息写入redis服务器,从而完成登录该待登录***。
同域/跨域判断模块340,与cookie判断模块320连接,适于若浏览器侧存在在先***完成登录后保存的当前cookie,则执行步骤4:比较待登录***的父域名与当前cookie对应的***的父域名是否相同。
同域自动登录模块350,与同域/跨域判断模块340连接,适于若待登录***的父域名与当前cookie对应的***的父域名相同,则执行步骤5:读取当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将待登录***的登录状态设置为已登录,从而实现对待登录***的自动登录。
进一步地,还可以采用上述模块执行相应步骤,实现对其他一个或多个待登录***的自动登录。
根据本发明的另一实施例中,如图4所示,图3中展示的单点登录多***的装置还可以包括:
跨域自动登录模块460,与同域/跨域判断模块340连接,适于在同域/跨域判断模块340执行步骤4之后,执行步骤6:若待登录***的父域名与当前cookie对应的***的父域名不同,则判断待登录***的域名是否在指定信任列表中;若待登录***的域名在指定信任列表中,则触发同域自动登录模块350执行步骤5;若待登录***的域名不在指定信任列表中,则拒绝登录,结束当前待登录***的登录流程。
在一个可选实施例中,验证请求携带有待登录***的统一资源定位符URL;
验证通过信息携带有待登录***的URL和登录信息服务器在对输入的用户信息进行验证并通过后生成的用户信息获取钥匙;
验证登录模块330还适于:
调用单点登录服务器的第一用户信息获取接口,向登录信息服务器发送携带用户信息获取钥匙的第一用户信息获取请求,并接收登录信息服务器根据第一用户信息获取请求返回的与用户信息获取钥匙对应的用户信息和用户唯一身份标识。
在一个可选实施例中,验证登录模块330还适于:
通过调用单点登录服务器的指定写入接口将用户信息写入redis服务器。
在一个可选实施例中,同域自动登录模块350还适于:
调用单点登录服务器的第二用户信息获取接口,向redis服务器发送携带有所读取的用户唯一身份标识的第二用户信息获取请求,并接收redis服务器根据第二用户信息获取请求返回的与该用户唯一身份标识对应的用户信息。
在一个可选实施例中,redis服务器中写入的用户信息设置有过期时间,此时,
同域自动登录模块350还适于:
当redis服务器在接收到携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身查找到与该读取的用户唯一身份标识对应的用户信息时,接收redis服务器返回的与该用户唯一身份标识对应的用户信息;
当redis服务器在接收到携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身未查找到与该读取的用户唯一身份标识对应的用户信息时,接收redis服务器返回的指示未获取成功的信息,并触发验证登录模块330执行步骤3。
在一个可选实施例中,验证登录模块330还适于:
从登录信息服务器获取用户信息和与用户信息对应的用户唯一身份标识之后,将用户信息写入待登录***的session中。
进一步地,如图4所示,图3中展示的单点登录多***的装置还可以包括:
基于session的登录模块470,与登录请求接收模块310和cookie判断模块320相连接,适于:在登录请求接收模块310执行步骤1之后且cookie判断模块320执行步骤2之前,判断是否存在待登录***的session;
若存在,则读取待登录***的session中保存的用户信息;
根据用户信息将待登录***的登录状态设置为已登录,从而实现自动登录待登录***;
若不存在,则触发cookie判断模块320执行步骤2。
在一个可选实施例中,用户唯一身份标识包括用户邮箱的MD5值。相应地,用户信息包括用户登录账号和密码。
在一个可选实施例中,该装置与登录信息服务器和redis服务器之间的信息传输采用https协议进行。
基于同一发明构思,本发明实施例还提供了一种计算机存储介质。该计算机存储介质存储有计算机程序代码,当该计算机程序代码在计算设备上运行时,导致计算设备执行根据上述任意一个实施例或其组合所述的单点登录多***的方法。
基于同一发明构思,本发明实施例还提供了一种计算设备。该计算设备可以包括:
处理器;以及
存储有计算机程序代码的存储器;
当该计算机程序代码被处理器运行时,导致该计算设备执行根据上述任意一个实施例或其组合所述的单点登录多***的方法。
根据上述任意一个可选实施例或多个可选实施例的组合,本发明实施例能够达到如下有益效果:
本发明实施例提出的单点登录多***的方法和装置,实现了单一***登录后,其他相关***不必重复登录的功能。首先,在接收到来自浏览器侧的对待登录***的登录请求后,判断出浏览器侧不存在在先***完成登录后保存的当前cookie,则跳转至登录信息服务器,输入用户信息进行登录验证;通过验证登录成功后,从登录信息服务器获取用户信息和对应的用户唯一身份标识,将用户唯一身份标识写入该待登录***的cookie中,并将用户信息写入redis服务器。然后,在接收到来自浏览器侧的对另一待登录***的登录请求后,判断出此时浏览器侧存在前一***完成登录后保存的当前cookie,比较当前待登录***的父域名与当前cookie对应的前一***的父域名是否相同;若相同,即,当前待登录***与当前cookie对应的前一***为同域***,则读取当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将当前待登录***的登录状态设置为已登录,从而实现对当前待登录***的自动登录。通过根据在先***完成登录后保存的cookie去获取用户的登录信息,进而自动登录与在先***同域的其它相关***,实现了在同域情况下,通过一次登录验证操作登录多个***的功能。
进一步地,若比较得出当前待登录***的父域名与当前cookie对应的前一***的父域名不同,即,当前待登录***与当前cookie对应的前一***为跨域***,则判断当前待登录***的域名是否在指定信任列表中,若是,则按照同域***的方式进行操作,实现自动登录,若否,则拒绝登录。通过设置信任列表,进一步实现了在跨域情况下,通过一次登录验证操作登录多个***的功能。
所属领域的技术人员可以清楚地了解到,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM),磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。
根据本发明实施例的一方面,提供了A1.一种单点登录多***的方法,应用于单点登录服务器,包括:
步骤1:接收来自浏览器侧的对待登录***的登录请求;
步骤2:判断所述浏览器侧是否存在在先***完成登录后保存的当前cookie;
若否,则执行步骤3:发送验证请求至登录信息服务器,当所述登录信息服务器根据所接收的验证请求对输入的用户信息进行验证并通过后,接收所述登录信息服务器返回的验证通过信息,从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识,将所述用户唯一身份标识写入所述待登录***的cookie中,并将所述用户信息写入redis服务器,从而完成登录所述待登录***;
若是,则执行步骤4:比较所述待登录***的父域名与所述当前cookie对应的***的父域名是否相同;
若相同,则执行步骤5:读取所述当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从所述redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将所述待登录***的登录状态设置为已登录,从而实现对所述待登录***的自动登录;
其中,还采用上述步骤,实现对其他一个或多个待登录***的自动登录。
A2.根据A1所述的方法,其中,在步骤4之后,还包括:
步骤6:若所述待登录***的父域名与所述当前cookie对应的***的父域名不同,则判断所述待登录***的域名是否在指定信任列表中;
若所述待登录***的域名在所述指定信任列表中,则执行步骤5;
若所述待登录***的域名不在所述指定信任列表中,则拒绝登录。
A3.根据A1或A2所述的方法,其中,在步骤3中,所述验证请求携带有所述待登录***的统一资源定位符URL;
所述验证通过信息携带有所述待登录***的URL和所述登录信息服务器在对输入的用户信息进行验证并通过后生成的用户信息获取钥匙;
从所述登录信息服务器获取所述用户信息和对应的用户唯一身份标识,包括:
调用所述单点登录服务器的第一用户信息获取接口,向所述登录信息服务器发送携带所述用户信息获取钥匙的第一用户信息获取请求,并接收所述登录信息服务器根据所述第一用户信息获取请求返回的与所述用户信息获取钥匙对应的用户信息和用户唯一身份标识。
A4.根据A1-A3中任一项所述的方法,其中,在步骤3中,将所述用户信息写入redis服务器,包括:
通过调用所述单点登录服务器的指定写入接口将所述用户信息写入redis服务器。
A5.根据A1-A4中任一项所述的方法,其中,在步骤5中,根据所读取的用户唯一身份标识从所述redis服务器拉取与该用户唯一身份标识对应的用户信息,包括:
调用所述单点登录服务器的第二用户信息获取接口,向所述redis服务器发送携带有所读取的用户唯一身份标识的第二用户信息获取请求,并接收所述redis服务器根据所述第二用户信息获取请求返回的与该用户唯一身份标识对应的用户信息。
A6.根据A5所述的方法,其中,所述redis服务器中写入的用户信息设置有过期时间,此时,
接收所述redis服务器根据所述第二用户信息获取请求返回的与该用户唯一身份标识对应的用户信息,包括:
当所述redis服务器在接收到所述携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身查找到与该读取的用户唯一身份标识对应的用户信息时,接收所述redis服务器返回的与该用户唯一身份标识对应的用户信息;
当所述redis服务器在接收到所述携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身未查找到与该读取的用户唯一身份标识对应的用户信息时,接收所述redis服务器返回的指示未获取成功的信息,并执行步骤3。
A7.根据A1-A6中任一项所述的方法,其中,在步骤3中,从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识之后,还包括:
将所述用户信息写入所述待登录***的session中。
A8.根据A7所述的方法,其中,在步骤1之后且步骤2之前,还包括:
判断是否存在所述待登录***的session;
若存在,则读取所述待登录***的session中保存的用户信息;
根据所述用户信息将所述待登录***的登录状态设置为已登录,从而实现自动登录所述待登录***;
若不存在,则执行步骤2。
A9.根据A1-A8中任一项所述的方法,其中,所述用户唯一身份标识包括用户邮箱的MD5值;
所述用户信息包括用户登录账号和密码。
A10.根据A1-A9中任一项所述的方法,其中,与所述登录信息服务器和所述redis服务器之间的信息传输采用https协议进行。
根据本发明实施例的另一方面,还提供了B11.一种单点登录多***的装置,应用于单点登录服务器,包括:
登录请求接收模块,适于执行步骤1:接收来自浏览器侧的对待登录***的登录请求;
cookie判断模块,适于执行步骤2:判断所述浏览器侧是否存在在先***完成登录后保存的当前cookie;
验证登录模块,适于若所述浏览器侧不存在在先***完成登录后保存的当前cookie,则执行步骤3:发送验证请求至登录信息服务器,当所述登录信息服务器根据所接收的验证请求对输入的用户信息进行验证并通过后,接收所述登录信息服务器返回的验证通过信息,从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识,将所述用户唯一身份标识写入所述待登录***的cookie中,并将所述用户信息写入redis服务器,从而完成登录所述待登录***;
同域/跨域判断模块,适于若所述浏览器侧存在在先***完成登录后保存的当前cookie,则执行步骤4:比较所述待登录***的父域名与所述当前cookie对应的***的父域名是否相同;以及
同域自动登录模块,适于若所述待登录***的父域名与所述当前cookie对应的***的父域名相同,则执行步骤5:读取所述当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从所述redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将所述待登录***的登录状态设置为已登录,从而实现对所述待登录***的自动登录;
其中,还采用上述模块执行相应步骤,实现对其他一个或多个待登录***的自动登录。
B12.根据B11所述的装置,其中,还包括:
跨域自动登录模块,适于在所述同域/跨域判断模块执行所述步骤4之后,执行步骤6:若所述待登录***的父域名与所述当前cookie对应的***的父域名不同,则判断所述待登录***的域名是否在指定信任列表中;
若所述待登录***的域名在所述指定信任列表中,则触发所述同域自动登录模块执行步骤5;
若所述待登录***的域名不在所述指定信任列表中,则拒绝登录。
B13.根据B11或B12所述的装置,其中,所述验证请求携带有所述待登录***的统一资源定位符URL;
所述验证通过信息携带有所述待登录***的URL和所述登录信息服务器在对输入的用户信息进行验证并通过后生成的用户信息获取钥匙;
所述验证登录模块还适于:
调用所述单点登录服务器的第一用户信息获取接口,向所述登录信息服务器发送携带所述用户信息获取钥匙的第一用户信息获取请求,并接收所述登录信息服务器根据所述第一用户信息获取请求返回的与所述用户信息获取钥匙对应的用户信息和用户唯一身份标识。
B14.根据B11-B13中任一项所述的装置,其中,所述验证登录模块还适于:
通过调用所述单点登录服务器的指定写入接口将所述用户信息写入redis服务器。
B15.根据B11-B14中任一项所述的装置,其中,所述同域自动登录模块还适于:
调用所述单点登录服务器的第二用户信息获取接口,向所述redis服务器发送携带有所读取的用户唯一身份标识的第二用户信息获取请求,并接收所述redis服务器根据所述第二用户信息获取请求返回的与该用户唯一身份标识对应的用户信息。
B16.根据B15所述的装置,其中,所述redis服务器中写入的用户信息设置有过期时间,此时,
所述同域自动登录模块还适于:
当所述redis服务器在接收到所述携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身查找到与该读取的用户唯一身份标识对应的用户信息时,接收所述redis服务器返回的与该用户唯一身份标识对应的用户信息;
当所述redis服务器在接收到所述携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身未查找到与该读取的用户唯一身份标识对应的用户信息时,接收所述redis服务器返回的指示未获取成功的信息,并触发所述验证登录模块执行步骤3。
B17.根据B11-B16中任一项所述的装置,其中,所述验证登录模块还适于:
从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识之后,将所述用户信息写入所述待登录***的session中。
B18.根据B17所述的装置,其中,还包括:
基于session的登录模块,适于:在所述登录请求接收模块执行步骤1之后且所述cookie判断模块执行步骤2之前,判断是否存在所述待登录***的session;
若存在,则读取所述待登录***的session中保存的用户信息;
根据所述用户信息将所述待登录***的登录状态设置为已登录,从而实现自动登录所述待登录***;
若不存在,则触发所述cookie判断模块执行步骤2。
B19.根据B11-B18中任一项所述的装置,其中,所述用户唯一身份标识包括用户邮箱的MD5值;
所述用户信息包括用户登录账号和密码。
B20.根据B11-B19中任一项所述的装置,其中,所述装置与所述登录信息服务器和所述redis服务器之间的信息传输采用https协议进行。
根据本发明实施例的又一方面,还提供了C21.一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据A1-A10中任一项所述的单点登录多***的方法。
根据本发明实施例的再一方面,还提供了D22.一种计算设备,包括:
处理器;以及
存储有计算机程序代码的存储器;
当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行根据A1-A10中任一项所述的单点登录多***的方法。

Claims (10)

1.一种单点登录多***的方法,应用于单点登录服务器,包括:
步骤1:接收来自浏览器侧的对待登录***的登录请求;
步骤2:判断所述浏览器侧是否存在在先***完成登录后保存的当前cookie;
若否,则执行步骤3:发送验证请求至登录信息服务器,当所述登录信息服务器根据所接收的验证请求对输入的用户信息进行验证并通过后,接收所述登录信息服务器返回的验证通过信息,从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识,将所述用户唯一身份标识写入所述待登录***的cookie中,并将所述用户信息写入redis服务器,从而完成登录所述待登录***;
若是,则执行步骤4:比较所述待登录***的父域名与所述当前cookie对应的***的父域名是否相同;
若相同,则执行步骤5:读取所述当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从所述redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将所述待登录***的登录状态设置为已登录,从而实现对所述待登录***的自动登录;
其中,还采用上述步骤,实现对其他一个或多个待登录***的自动登录。
2.根据权利要求1所述的方法,其中,在步骤4之后,还包括:
步骤6:若所述待登录***的父域名与所述当前cookie对应的***的父域名不同,则判断所述待登录***的域名是否在指定信任列表中;
若所述待登录***的域名在所述指定信任列表中,则执行步骤5;
若所述待登录***的域名不在所述指定信任列表中,则拒绝登录。
3.根据权利要求1或2所述的方法,其中,在步骤3中,所述验证请求携带有所述待登录***的统一资源定位符URL;
所述验证通过信息携带有所述待登录***的URL和所述登录信息服务器在对输入的用户信息进行验证并通过后生成的用户信息获取钥匙;
从所述登录信息服务器获取所述用户信息和对应的用户唯一身份标识,包括:
调用所述单点登录服务器的第一用户信息获取接口,向所述登录信息服务器发送携带所述用户信息获取钥匙的第一用户信息获取请求,并接收所述登录信息服务器根据所述第一用户信息获取请求返回的与所述用户信息获取钥匙对应的用户信息和用户唯一身份标识。
4.根据权利要求1-3中任一项所述的方法,其中,在步骤3中,将所述用户信息写入redis服务器,包括:
通过调用所述单点登录服务器的指定写入接口将所述用户信息写入redis服务器。
5.根据权利要求1-4中任一项所述的方法,其中,在步骤5中,根据所读取的用户唯一身份标识从所述redis服务器拉取与该用户唯一身份标识对应的用户信息,包括:
调用所述单点登录服务器的第二用户信息获取接口,向所述redis服务器发送携带有所读取的用户唯一身份标识的第二用户信息获取请求,并接收所述redis服务器根据所述第二用户信息获取请求返回的与该用户唯一身份标识对应的用户信息。
6.根据权利要求5所述的方法,其中,所述redis服务器中写入的用户信息设置有过期时间,此时,
接收所述redis服务器根据所述第二用户信息获取请求返回的与该用户唯一身份标识对应的用户信息,包括:
当所述redis服务器在接收到所述携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身查找到与该读取的用户唯一身份标识对应的用户信息时,接收所述redis服务器返回的与该用户唯一身份标识对应的用户信息;
当所述redis服务器在接收到所述携带有所读取的用户唯一身份标识的第二用户信息获取请求后,在自身未查找到与该读取的用户唯一身份标识对应的用户信息时,接收所述redis服务器返回的指示未获取成功的信息,并执行步骤3。
7.根据权利要求1-6中任一项所述的方法,其中,在步骤3中,从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识之后,还包括:
将所述用户信息写入所述待登录***的session中。
8.一种单点登录多***的装置,应用于单点登录服务器,包括:
登录请求接收模块,适于执行步骤1:接收来自浏览器侧的对待登录***的登录请求;
cookie判断模块,适于执行步骤2:判断所述浏览器侧是否存在在先***完成登录后保存的当前cookie;
验证登录模块,适于若所述浏览器侧不存在在先***完成登录后保存的当前cookie,则执行步骤3:发送验证请求至登录信息服务器,当所述登录信息服务器根据所接收的验证请求对输入的用户信息进行验证并通过后,接收所述登录信息服务器返回的验证通过信息,从所述登录信息服务器获取所述用户信息和与所述用户信息对应的用户唯一身份标识,将所述用户唯一身份标识写入所述待登录***的cookie中,并将所述用户信息写入redis服务器,从而完成登录所述待登录***;
同域/跨域判断模块,适于若所述浏览器侧存在在先***完成登录后保存的当前cookie,则执行步骤4:比较所述待登录***的父域名与所述当前cookie对应的***的父域名是否相同;以及
同域自动登录模块,适于若所述待登录***的父域名与所述当前cookie对应的***的父域名相同,则执行步骤5:读取所述当前cookie中保存的用户唯一身份标识,根据所读取的用户唯一身份标识从所述redis服务器拉取与该用户唯一身份标识对应的用户信息,并根据所拉取的用户信息将所述待登录***的登录状态设置为已登录,从而实现对所述待登录***的自动登录;
其中,还采用上述模块执行相应步骤,实现对其他一个或多个待登录***的自动登录。
9.一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据权利要求1-7中任一项所述的单点登录多***的方法。
10.一种计算设备,包括:
处理器;以及
存储有计算机程序代码的存储器;
当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行根据权利要求1-7中任一项所述的单点登录多***的方法。
CN201810864122.3A 2018-08-01 2018-08-01 一种单点登录多***的方法和装置 Active CN109246076B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810864122.3A CN109246076B (zh) 2018-08-01 2018-08-01 一种单点登录多***的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810864122.3A CN109246076B (zh) 2018-08-01 2018-08-01 一种单点登录多***的方法和装置

Publications (2)

Publication Number Publication Date
CN109246076A true CN109246076A (zh) 2019-01-18
CN109246076B CN109246076B (zh) 2022-11-04

Family

ID=65073425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810864122.3A Active CN109246076B (zh) 2018-08-01 2018-08-01 一种单点登录多***的方法和装置

Country Status (1)

Country Link
CN (1) CN109246076B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977788A (zh) * 2019-03-03 2019-07-05 湖北无垠智探科技发展有限公司 一种无人机航摄影像一体化处理平台
CN110324307A (zh) * 2019-05-16 2019-10-11 平安科技(深圳)有限公司 一种基于云技术的单点登录验证方法及相关设备
CN110430205A (zh) * 2019-08-09 2019-11-08 深圳前海微众银行股份有限公司 单点登录方法、装置、设备及计算机可读存储介质
CN110493183A (zh) * 2019-07-05 2019-11-22 深圳市邦健科技有限公司 多账号同时在线的处理方法、装置、存储介质及设备
CN111343145A (zh) * 2020-02-03 2020-06-26 山东爱城市网信息技术有限公司 一种基于Redis的单点登录方法及装置
CN111353117A (zh) * 2020-03-09 2020-06-30 南京联创互联网技术有限公司 基于key-value型内存数据库的WEB跨域cookie管理***
CN111800511A (zh) * 2020-07-07 2020-10-20 上海携程商务有限公司 同步登录态的处理方法、***、设备及可读存储介质
CN111949308A (zh) * 2020-08-07 2020-11-17 北京字节跳动网络技术有限公司 一种软件包发布方法及装置
CN112069488A (zh) * 2020-07-27 2020-12-11 合肥美的智能科技有限公司 在通信程序中的应用登录方法及其相关装置
CN112948802A (zh) * 2020-04-28 2021-06-11 深圳市明源云科技有限公司 单点登录方法、装置、设备及存储介质
CN116208378A (zh) * 2023-01-03 2023-06-02 学银通融(北京)教育科技有限公司 一种防止用户重复登陆的方法、装置及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468790A (zh) * 2014-12-09 2015-03-25 北京奇虎科技有限公司 cookie数据的处理方法与客户端
CN104836803A (zh) * 2015-04-24 2015-08-12 北京工商大学 基于session机制的单点登录方法
US9325696B1 (en) * 2012-01-31 2016-04-26 Google Inc. System and method for authenticating to a participating website using locally stored credentials
CN107948167A (zh) * 2017-11-29 2018-04-20 浙江数链科技有限公司 一种单点登录的方法和装置
CN108289101A (zh) * 2018-01-25 2018-07-17 中企动力科技股份有限公司 信息处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9325696B1 (en) * 2012-01-31 2016-04-26 Google Inc. System and method for authenticating to a participating website using locally stored credentials
CN104468790A (zh) * 2014-12-09 2015-03-25 北京奇虎科技有限公司 cookie数据的处理方法与客户端
CN104836803A (zh) * 2015-04-24 2015-08-12 北京工商大学 基于session机制的单点登录方法
CN107948167A (zh) * 2017-11-29 2018-04-20 浙江数链科技有限公司 一种单点登录的方法和装置
CN108289101A (zh) * 2018-01-25 2018-07-17 中企动力科技股份有限公司 信息处理方法及装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977788A (zh) * 2019-03-03 2019-07-05 湖北无垠智探科技发展有限公司 一种无人机航摄影像一体化处理平台
CN110324307A (zh) * 2019-05-16 2019-10-11 平安科技(深圳)有限公司 一种基于云技术的单点登录验证方法及相关设备
CN110493183A (zh) * 2019-07-05 2019-11-22 深圳市邦健科技有限公司 多账号同时在线的处理方法、装置、存储介质及设备
CN110430205A (zh) * 2019-08-09 2019-11-08 深圳前海微众银行股份有限公司 单点登录方法、装置、设备及计算机可读存储介质
CN111343145A (zh) * 2020-02-03 2020-06-26 山东爱城市网信息技术有限公司 一种基于Redis的单点登录方法及装置
CN111353117A (zh) * 2020-03-09 2020-06-30 南京联创互联网技术有限公司 基于key-value型内存数据库的WEB跨域cookie管理***
CN112948802A (zh) * 2020-04-28 2021-06-11 深圳市明源云科技有限公司 单点登录方法、装置、设备及存储介质
CN112948802B (zh) * 2020-04-28 2024-03-12 深圳市明源云科技有限公司 单点登录方法、装置、设备及存储介质
CN111800511A (zh) * 2020-07-07 2020-10-20 上海携程商务有限公司 同步登录态的处理方法、***、设备及可读存储介质
CN112069488A (zh) * 2020-07-27 2020-12-11 合肥美的智能科技有限公司 在通信程序中的应用登录方法及其相关装置
CN111949308A (zh) * 2020-08-07 2020-11-17 北京字节跳动网络技术有限公司 一种软件包发布方法及装置
CN116208378A (zh) * 2023-01-03 2023-06-02 学银通融(北京)教育科技有限公司 一种防止用户重复登陆的方法、装置及设备
CN116208378B (zh) * 2023-01-03 2023-11-24 学银通融(北京)教育科技有限公司 一种防止用户重复登陆的方法、装置及设备

Also Published As

Publication number Publication date
CN109246076B (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
CN109246076A (zh) 一种单点登录多***的方法和装置
CN109409043B (zh) 应用***的登录方法、终端设备及介质
US11790062B2 (en) Processing authentication requests to secured information systems based on machine-learned user behavior profiles
US11496452B2 (en) Non-repeatable challenge-response authentication
US9104451B2 (en) Dynamic communication between script and execution layers
CN109639740A (zh) 一种基于设备id的登录态共享方法及装置
CN105871838B (zh) 一种第三方账号的登录控制方法及用户中心平台
CN110032842B (zh) 同时支持单点登录及第三方登录的方法和***
JP6595625B2 (ja) 自動再チャージシステム、方法、およびサーバ
EP3211825A1 (en) Trusted terminal verification method and apparatus
CN110430205A (zh) 单点登录方法、装置、设备及计算机可读存储介质
US11811780B2 (en) Behavior-based authentication
CN106656927A (zh) 将Linux账号加入AD域的方法及装置
CN103997482B (zh) 桌面云业务中用户登录的方法、***
US12010194B2 (en) Scalable server-based web scripting with user input
CN106130739A (zh) 应用程序登录处理方法及装置
US20140095970A1 (en) Configurable templates for self-service supplier registration
CN110324307A (zh) 一种基于云技术的单点登录验证方法及相关设备
CN110062005A (zh) 用户终端、服务器、验证***及方法
CN110113346A (zh) 一种网络验证方法、用户终端及服务器
CN107911443A (zh) 一种会话信息处理方法、装置、服务器和可读存储介质
CN112818016A (zh) 基于api的实时、离线数据查询方法及***
CN105760119B (zh) 终端设备、信息处理***和输出方法
CN116886428A (zh) 服务认证方法、***及相关设备
CN106603567A (zh) 一种web管理员的登录管理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant