简单实现跨域单点登录,Redis助力(单点登录跨域redis)
《简单实现跨域单点登录,Redis助力》
当应用规模越来越大,不再仅限于一个域名下的多个应用,一个用户登录任意一个应用时,要求其他应用也能实现自动登录,从而实现跨域单点登录,这就是接下来要讲的跨域单点登录,Redis助力这一部分。
我们要明确一点,跨域单点登录必须实现认证服务器,作为统一认证应用的中央,它负责实现用户验证及保存会话信息,让个应用都能遵循统一的登录流程并与其它应用相互验证。
除了认证服务器,我们还需要一个中间层来构建在客户端与认证服务器之间,这个中间件的主要功能就是生成和校验授权令牌,它可以利用传统的Session和Cookie技术,也可以使用JWT令牌来达到跨域互认的目的,这里,我们选择使用JWT技术来实现。
然后,我们可以用Redis缓存来保存生成的JWT令牌,因为Redis的查找速度快、内存存储,可以实现高性能的缓存服务,同时Redis缓存还可以跨多服务器来存储授权令牌,让令牌的生成和校验的速度快于本地服务器,从而让跨域单点登录变得更加安全可靠。
我们可以在客户端进行登录验证,登录时先验证本域的凭证,然后发生跨域请求,即向认证服务器提交登录凭证,收到响应后验证服务器端发过来的JWT令牌,若验证通过,则一次性将相关信息存放到Redis缓存中,从而结束此次登录者的信息请求。
至此,我们已经实现了跨域单点登录,在认证过程中,Redis的高性能缓存起到了关键的作用,可以在高速缓存认证数据,实现可靠的认证服务,构建起安全可靠的极客应用。