一种基于缓存的单点登录的方法及系统的制作方法

文档序号:9711596阅读:1120来源:国知局
一种基于缓存的单点登录的方法及系统的制作方法
【技术领域】
[0001]本发明涉及单点登录及缓存技术领域,尤其涉及一种基于缓存的单点登录的方法及系统。
【背景技术】
[0002]近年来随着互联网的快速发展,网站应用的规模不断扩大,业务量也不断增多,同一个应用部署多个工程成为许多网站的选择。多个工程的网站间的登录就成了问题,于是有了单点登录的解决方案。如图1所示,现在普遍的解决方式是通过缓存来存储票据,让票据成为各个工程的网站之间登录的凭证,但是依然通过sess1n(在计算机中,尤其是在网络应用中,称为“会话控制”)来存储用户信息,每个工程的网站在访问过程中,若需要用到用户信息,就只能通过各自的sess1n来获取相应的用户信息进行操作,不能多个工程共享同一个用户信息,这样导致服务器的内存占用大,用户信息的使用率低,网站访问的效率低。

【发明内容】

[0003]本发明要解决的技术问题之一,在于提供一种基于缓存的单点登录的方法,用于解决多个工程之间登录的问题。
[0004]本发明的问题之一,是这样实现的:
[0005]—种基于缓存的单点登录的方法,包括如下步骤:
[0006]步骤1、验证用户是否已经登录,若用户已经登录,则跳转到访问页面,进入步骤4;否则,跳转到登录页面,进入步骤2;
[0007]步骤2、用户在登录页面上输入用户信息,客户端发送用户信息给服务器,服务器接收用户信息后,判断登录的用户信息是否正确,若用户信息不正确,则提示用户;若用户信息正确,则将用户信息存入缓存中,如果缓存中存在相同的用户信息,则删除该用户信息,如果缓存中不存在相同的用户信息,则保存该用户信息;
[0008]步骤3、将用户信息作为value,并生成一个随机数作为key,key与value--对应,
将key保存到cookie中,并设置cookie的路径为顶级域以供多个工程共享;
[0009]步骤4、用户访问多个工程的页面,在访问过程中,若要用到所述用户信息,则通过cookie中的key找到value,从而获取缓存中的用户信息进行使用;若不要用到所述用户信息,则直接访问。
[0010]进一步地,所述步骤1中验证用户是否已经登录的验证方式具体如下:
[0011]新建一个工程,在工程的xml文件中配置一个过滤器,根据所述过滤器写一个过滤方法,通过该过滤方法验证用户是否已经登录。
[0012]进一步地,所述步骤4之后还包括:
[0013]步骤5、当用户退出时,注销cook i e和缓存的用户信息。
[0014]本发明要解决的技术问题之二,在于提供一种基于缓存的单点登录的系统,用于解决多个工程之间登录的问题。
[0015]本发明的问题之二,是这样实现的:
[0016]一种基于缓存的单点登录的系统,包括:
[0017]用户登录验证模块,用于验证用户是否已经登录,若用户已经登录,则跳转到访问页面,进入用户访问页面模块;否则,跳转到登录页面,进入用户信息判断模块;
[0018]用户信息判断模块,用于用户在登录页面上输入用户信息,客户端发送用户信息给服务器,服务器接收用户信息后,判断登录的用户信息是否正确,若用户信息不正确,则提示用户;若用户信息正确,则将用户信息存入缓存中,如果缓存中存在相同的用户信息,则删除该用户信息,如果缓存中不存在相同的用户信息,则保存该用户信息;
[0019]用户信息共享模块,用于将用户信息作为value,并生成一个随机数作为key,key与value--对应,将key保存到cookie中,并设置cookie的路径为顶级域以供多个工程共
[0020]用户访问页面模块,用于用户访问多个工程的页面,在访问过程中,若要用到所述用户信息,则通过cookie中的key找到value,从而获取缓存中的用户信息进行使用;若不要用到所述用户信息,则直接访问。
[0021]进一步地,所述用户登录验证模块中验证用户是否已经登录的验证方式具体如下:
[0022]新建一个工程,在工程的xml文件中配置一个过滤器,根据所述过滤器写一个过滤方法,通过该过滤方法验证用户是否已经登录。
[0023]进一步地,所述用户访问页面模块之后还包括:
[0024]用户信息注销模块,用于当用户退出时,注销cookie和缓存的用户信息。
[0025]本发明具有如下优点:本发明实现了用户只要登录一次就可以访问所有工程的网站,直接通过缓存来存储用户信息,所有工程的网站共享一个缓存,替代了原先每个工程的网站通过sess1n存储用户信息的方式,节省内存空间,在退出时,只需注销cookie(指某些网站为了辨别用户身份、进行sess1n跟踪而储存在用户本地终端上的数据(通常经过加密))和用户信息即可;而且,在用户登录时,若缓存中已有用户信息,则删除该用户信息,防止同一个账号登录多次。
【附图说明】
[0026]下面参照附图结合实施例对本发明作进一步的说明。
[0027]图1为现有技术的单点登录解决方案的原理图。
[0028]图2为本发明的单点登录解决方案的原理图。
[0029]图3为本发明一种基于缓存的单点登录的方法执行流程图。
【具体实施方式】
[0030]为使本发明更明显易懂,现以一优选实施例,并配合附图作详细说明如下。
[0031]如图2和图3所示,本发明的一种基于缓存的单点登录的方法,包括如下步骤:
[0032]步骤1、新建一个工程,在工程的xml文件中配置一个过滤器,根据所述过滤器写一个过滤方法,通过该过滤方法验证用户是否已经登录,若用户已经登录,说明客户端中存在cookie且服务器缓存中存在用户信息,则跳转到访问页面,进入步骤4;否则,跳转到登录页面,进入步骤2;
[0033]步骤2、用户在登录页面上输入用户信息,客户端发送用户信息给服务器,服务器接收该用户信息后,判断登录的用户信息是否正确,若用户信息不正确,则提示用户;若用户信息正确,则将用户信息存入缓存中,如果缓存中存在相同的用户信息,则删除该用户信息,防止同一个用户信息登录多次,如果缓存中不存在相同的用户信息,则保存该用户信息;
[0034]同时,设置缓存的生命周期,缓存时间不断更新,使得缓存的生命周期是从最后一次访问页面的时间记起,如设置缓存的生命周期为30min,若在2:45时输入用户信息进行页面访问,若用户在该生命周期内有进行操作,则此时该用户信息保存的时间为2:45?3:15,但若在3:00时再次输入该用户信息进行页面访问,用户在该生命周期内有进行操作,则此时该用户信息保存的时间为3:00?3:30;若用户在该生命周期内不进行任何操作,则默认用户退出,直接进入步骤5;
[0035]步骤3、将用户信息作为value,并生成一个随机数作为key,key与value--对应,
将key保存到cookie中,并设置cookie的路径为顶级域以供多个工程共享,即所有工程的网站访问均可使用通过置cookie获取到的用户信息;
[0036]步骤4、用户访问多个工程的页面,在访问过程中,若要用到所述用户信息,则通过cookie中的key找到value,从而获取缓存中的用户信息进行使用;若不要用到所述用户信息,则直接访问;
[0037]步骤5、当用户
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1