同时支持单点登录及第三方登录的方法和系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种同时支持单点登录及第三方登录的方法及系统。
背景技术
本发明对背景技术的描述属于与本发明的相关技术,仅仅是用于说明和便于理解本发明的发明内容,不应理解为申请人明确认为或推定申请人认为是本发明在首次提出申请的申请日的现有技术。
早期公司,一家公司只有一个server,随着业务复杂server也开始慢慢增多。每个Server都要进行注册登录,退出的时候又要一个个退出。用户体验很不好。我们想要另一种登录体验:一家企业下的服务只要一次注册,登录的时候只要一次登录,退出的时候只要一次退出。单点登录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。第三方登录,是指用户登录系统时借助第三方公司的账号信息来登录。
随着网络的发展,用户在使用系统时希望能够根据自己的需求灵活选择采用单点登录还是第三方登录的方式登录系统,然而现有的登录方式并不能根据用户的要求灵活配置。
发明内容
针对以上问题,本发明提供一种同时支持单点登录及第三方登录的方法及系统,能够根据用户的选择灵活配置单点登录还是第三方登录。
本发明提供一种同时支持单点登录及第三方登录的方法,其特征在于,包括以下步骤:
客户端发送包含有登录类型的登录请求,所述登录类型包括单点登录和第三方登录;
服务端接收所述登录请求,从所述登录请求中解析出所述登录类型,并调用所述登录类型对应的授权认证服务对用户进行认证,返回登录结果。
进一步,在发送包含有登录类型的登录请求之前还包括以下步骤:
客户端根据用户选择配置登录类型。
进一步,所述登录请求为统一资源定位符URL,所述登录类型为URL中的字段。
进一步,所述单点登录对应的授权认证服务具体执行以下步骤:
所述服务端根据用户输入的用户名密码生成code码、refreshToken、令牌、cookie,重定向至所述客户端,并携带所述code码;
所述客户端拦截所述重定向,根据所述code码发送请求获取accessToken;
所述服务端进行参数校验,生成accessToken,并将accessToken、用户名、refreshToken、令牌进行关联,将accessToken和refreshToken返回所述客户端;
所述客户端将返回的所述accessToken、refreshToken和session关联,根据accessToken向资源服务器发送请求获取用户信息。
进一步,所述第三方登录对应的授权认证服务具体执行以下步骤:
所述服务端根据用户输入用户名密码进行登录,重定向至所述客户端,并携带所述code码;
所述客户端拦截所述重定向,根据所述code码向所述服务端发送请求获取accessToken;
所述服务端进行参数校验,生成accessToken,并将所述accessToken、用户名进行关联,将所述accessToken返回给所述客户端;
所述客户端将返回的所述accessToken和session关联,根据所述accessToken向资源服务器发送请求获取用户信息。
进一步,所述客户端为集成登录的系统,所述服务端提供授权认证服务,可以为服务器。
本发明还提供一种同时支持单点登录及第三方登录的系统,用以执行上述一种同时支持单点登录及第三方登录的方法,包括客户端和服务端,所述客户端为集成登录的系统,所述服务端提供授权认证服务;
所述客户端发送包含有登录类型的登录请求,所述登录类型包括单点登录和第三方登录;
所述服务端接收所述登录请求,从所述登录请求中解析出所述登录类型,并调用所述登录类型对应的授权认证服务对用户进行认证,返回登录结果。
进一步,在发送包含有登录类型的登录请求之前还包括以下步骤:
客户端根据用户选择配置登录类型。
进一步,所述登录请求为统一资源定位符URL,所述登录类型为URL中的字段。
进一步,所述单点登录对应的授权认证服务具体执行以下步骤:
所述服务端根据用户输入的用户名密码生成code码、refreshToken、令牌、cookie,重定向至所述客户端,并携带所述code码;
所述客户端拦截所述重定向,根据所述code码发送请求获取accessToken;
所述服务端进行参数校验,生成accessToken,并将accessToken、用户名、refreshToken、令牌进行关联,将accessToken和refreshToken返回所述客户端;
所述客户端将返回的所述accessToken、refreshToken和session关联,根据accessToken向资源服务器发送请求获取用户信息。
进一步,所述第三方登录对应的授权认证服务具体执行以下步骤:
所述服务端根据用户输入用户名密码进行登录,并生成code码及重定向地址,所述重定向地址指向所述客户端,并携带所述code码;
所述客户端拦截所述重定向地址,根据所述code码向所述服务端发送请求获取accessToken;
所述服务端进行参数校验,生成accessToken,并将所述accessToken、用户名进行关联,将所述accessToken返回给所述客户端;
所述客户端将返回的所述accessToken和session关联,根据所述accessToken向资源服务器发送请求获取用户信息。
本发明达到的有益效果是能够根据用户的选择灵活配置单点登录还是第三方登录,满足用户多样化的需求。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍:
图1示出了本发明第一实施例的一种同时支持单点登录及第三方登录的方法的流程图。
图2示出了单点登录对应的授权认证服务的流程图。
图3示出了第三方登录对应的授权认证服务的流程图。
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
在下述介绍中,术语“第一”、“第二”仅用于描述的目的,而不能理解为暗示其相对重要性。
下述介绍提供了本发明的多个实施例,不同实施例之间可以替换或者合并组合,因此本发明也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征A、B、C,另一个实施例包含特征B、D,那么本发明也应视为包括含有A、B、C、D的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。
实施例一
图1示出了本发明第一实施例的一种同时支持单点登录及第三方登录的方法的流程图。
如图1所示,本发明的一种同时支持单点登录及第三方登录的方法,包括以下步骤:
客户端发送包含有登录类型的登录请求,所述登录类型包括单点登录和第三方登录;
服务端接收所述登录请求,从所述登录请求中解析出所述登录类型,并调用所述登录类型对应的授权认证服务对用户进行认证;
返回登录结果。
进一步,在发送包含有登录类型的登录请求之前还包括以下步骤:
客户端根据用户选择配置登录类型。
进一步,所述登录请求为统一资源定位符URL,所述登录类型为URL中的字段,如“https://192.168.1.1/oauth/authorize?client_id=XXX&response_type=code&login_type=XXX”,其中login_type为登录类型。
图2示出了单点登录对应的授权认证服务的流程图。
如图2所示,所述单点登录对应的授权认证服务具体执行以下步骤:
服务端202根据用户输入的用户名密码生成code码、refreshToken、令牌、cookie,重定向至所述客户端201,并携带所述code码;
所述客户端201拦截所述重定向,根据所述code码向所述服务端202发送请求获取accessToken;
所述服务端202进行参数校验,生成accessToken,并将accessToken、用户名、refreshToken、令牌进行关联,将accessToken和refreshToken返回所述客户端201;
所述客户端201将返回的所述accessToken、refreshToken和session关联,根据accessToken向资源服务器发送请求获取用户信息。
图3示出了第三方登录对应的授权认证服务的流程图。
如图3所示,所述第三方登录对应的授权认证服务具体执行以下步骤:
所述服务端202根据用户输入用户名密码进行登录,重定向所述客户端201,并携带所述code码;
所述客户端201拦截所述重定向,根据所述code码向所述服务端202发送请求获取accessToken;
所述服务端202进行参数校验,生成accessToken,并将所述accessToken、用户名进行关联,将所述accessToken返回给所述客户端201;
所述客户端201将返回的所述accessToken和session关联,根据所述accessToken向资源服务器发送请求获取用户信息。
进一步,所述客户端201为集成登录的系统,所述服务端202提供授权认证服务。
本发明还提供一种同时支持单点登录及第三方登录的系统,用以执行上述一种同时支持单点登录及第三方登录的方法,包括客户端201和服务端201,所述客户端201为集成登录的系统,所述服务端201提供授权认证服务;
所述客户端201发送包含有登录类型的登录请求,所述登录类型包括单点登录和第三方登录;
所述服务端201接收所述登录请求,从所述登录请求中解析出所述登录类型,并调用所述登录类型对应的授权认证服务对用户进行认证,返回登录结果。
进一步,在发送包含有登录类型的登录请求之前还包括以下步骤:
客户端201根据用户选择配置登录类型。
进一步,所述登录请求为统一资源定位符URL,所述登录类型为URL中的字段。
进一步,所述单点登录对应的授权认证服务具体执行以下步骤:
所述服务端201根据用户输入的用户名密码生成code码、refreshToken、令牌、cookie,重定向至所述客户端201,并携带所述code码;
所述客户端201拦截所述重定向,根据所述code码发送请求获取accessToken;
所述服务端201进行参数校验,生成accessToken,并将accessToken、用户名、refreshToken、令牌进行关联,将accessToken和refreshToken返回所述客户端201;
所述客户端201将返回的所述accessToken、refreshToken和session关联,根据accessToken向资源服务器发送请求获取用户信息。
进一步,所述第三方登录对应的授权认证服务具体执行以下步骤:
所述服务端201根据用户输入用户名密码进行登录,并生成code码及重定向地址,所述重定向地址指向所述客户端201,并携带所述code码;
所述客户端201拦截所述重定向地址,根据所述code码向所述服务端201发送请求获取accessToken;
所述服务端201进行参数校验,生成accessToken,并将所述accessToken、用户名进行关联,将所述accessToken返回给所述客户端201;
所述客户端201将返回的所述accessToken和session关联,根据所述accessToken向资源服务器发送请求获取用户信息。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述用于授权管理控制请求的方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现用于授权管理控制请求的方法的步骤。在本发明实施例中,处理器为计算机系统的控制中心,可以是实体机的处理器,也可以是虚拟机的处理器。
以上介绍仅为本发明的优选实施例而已,并非对本发明作任何实质和形式上的限制。虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,对于本领域的技术人员来说,在不脱离本发明技术方案范围内,可以利用上述揭示的技术内容作出各种更改和变化的等效实施例。但凡未脱离本发明的精神和原则,依据本发明的技术实质对以上实施例所作的任何简单修改、等同替换、改进等,均应包含在本发明的保护范围之内。