CN105472029A - 一种基于缓存的单点登录的方法及系统 - Google Patents
一种基于缓存的单点登录的方法及系统 Download PDFInfo
- Publication number
- CN105472029A CN105472029A CN201511016259.6A CN201511016259A CN105472029A CN 105472029 A CN105472029 A CN 105472029A CN 201511016259 A CN201511016259 A CN 201511016259A CN 105472029 A CN105472029 A CN 105472029A
- Authority
- CN
- China
- Prior art keywords
- user profile
- user
- buffer memory
- cookie
- key
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种基于缓存的单点登录的方法,包括:1、验证用户是否已经登录,若已登录,则跳转到访问页面,进入步骤4;否则,跳转到登录页面,进入步骤2;2、判断登录的用户信息是否正确,若不正确,则提示用户;否则将用户信息存入缓存中,如果缓存中存在相同的用户信息,则删除,如果不存在,则保存;3、将用户信息作为value,并生成一个随机数作为key,将key保存到cookie中,设置cookie的路径为顶级域;4、在访问页面过程中,若要用到用户信息,则通过key找到value,从而获取缓存中的用户信息进行使用;否则,直接访问。本发明还提供一种基于缓存的单点登录的系统,解决多个工程之间登录的问题。
Description
技术领域
本发明涉及单点登录及缓存技术领域,尤其涉及一种基于缓存的单点登录的方法及系统。
背景技术
近年来随着互联网的快速发展,网站应用的规模不断扩大,业务量也不断增多,同一个应用部署多个工程成为许多网站的选择。多个工程的网站间的登录就成了问题,于是有了单点登录的解决方案。如图1所示,现在普遍的解决方式是通过缓存来存储票据,让票据成为各个工程的网站之间登录的凭证,但是依然通过session(在计算机中,尤其是在网络应用中,称为“会话控制”)来存储用户信息,每个工程的网站在访问过程中,若需要用到用户信息,就只能通过各自的session来获取相应的用户信息进行操作,不能多个工程共享同一个用户信息,这样导致服务器的内存占用大,用户信息的使用率低,网站访问的效率低。
发明内容
本发明要解决的技术问题之一,在于提供一种基于缓存的单点登录的方法,用于解决多个工程之间登录的问题。
本发明的问题之一,是这样实现的:
一种基于缓存的单点登录的方法,包括如下步骤:
步骤1、验证用户是否已经登录,若用户已经登录,则跳转到访问页面,进入步骤4;否则,跳转到登录页面,进入步骤2;
步骤2、用户在登录页面上输入用户信息,客户端发送用户信息给服务器,服务器接收用户信息后,判断登录的用户信息是否正确,若用户信息不正确,则提示用户;若用户信息正确,则将用户信息存入缓存中,如果缓存中存在相同的用户信息,则删除该用户信息,如果缓存中不存在相同的用户信息,则保存该用户信息;
步骤3、将用户信息作为value,并生成一个随机数作为key,key与value一一对应,将key保存到cookie中,并设置cookie的路径为顶级域以供多个工程共享;
步骤4、用户访问多个工程的页面,在访问过程中,若要用到所述用户信息,则通过cookie中的key找到value,从而获取缓存中的用户信息进行使用;若不要用到所述用户信息,则直接访问。
进一步地,所述步骤1中验证用户是否已经登录的验证方式具体如下:
新建一个工程,在工程的xml文件中配置一个过滤器,根据所述过滤器写一个过滤方法,通过该过滤方法验证用户是否已经登录。
进一步地,所述步骤4之后还包括:
步骤5、当用户退出时,注销cookie和缓存的用户信息。
本发明要解决的技术问题之二,在于提供一种基于缓存的单点登录的系统,用于解决多个工程之间登录的问题。
本发明的问题之二,是这样实现的:
一种基于缓存的单点登录的系统,包括:
用户登录验证模块,用于验证用户是否已经登录,若用户已经登录,则跳转到访问页面,进入用户访问页面模块;否则,跳转到登录页面,进入用户信息判断模块;
用户信息判断模块,用于用户在登录页面上输入用户信息,客户端发送用户信息给服务器,服务器接收用户信息后,判断登录的用户信息是否正确,若用户信息不正确,则提示用户;若用户信息正确,则将用户信息存入缓存中,如果缓存中存在相同的用户信息,则删除该用户信息,如果缓存中不存在相同的用户信息,则保存该用户信息;
用户信息共享模块,用于将用户信息作为value,并生成一个随机数作为key,key与value一一对应,将key保存到cookie中,并设置cookie的路径为顶级域以供多个工程共享;
用户访问页面模块,用于用户访问多个工程的页面,在访问过程中,若要用到所述用户信息,则通过cookie中的key找到value,从而获取缓存中的用户信息进行使用;若不要用到所述用户信息,则直接访问。
进一步地,所述用户登录验证模块中验证用户是否已经登录的验证方式具体如下:
新建一个工程,在工程的xml文件中配置一个过滤器,根据所述过滤器写一个过滤方法,通过该过滤方法验证用户是否已经登录。
进一步地,所述用户访问页面模块之后还包括:
用户信息注销模块,用于当用户退出时,注销cookie和缓存的用户信息。
本发明具有如下优点:本发明实现了用户只要登录一次就可以访问所有工程的网站,直接通过缓存来存储用户信息,所有工程的网站共享一个缓存,替代了原先每个工程的网站通过session存储用户信息的方式,节省内存空间,在退出时,只需注销cookie(指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密))和用户信息即可;而且,在用户登录时,若缓存中已有用户信息,则删除该用户信息,防止同一个账号登录多次。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为现有技术的单点登录解决方案的原理图。
图2为本发明的单点登录解决方案的原理图。
图3为本发明一种基于缓存的单点登录的方法执行流程图。
具体实施方式
为使本发明更明显易懂,现以一优选实施例,并配合附图作详细说明如下。
如图2和图3所示,本发明的一种基于缓存的单点登录的方法,包括如下步骤:
步骤1、新建一个工程,在工程的xml文件中配置一个过滤器,根据所述过滤器写一个过滤方法,通过该过滤方法验证用户是否已经登录,若用户已经登录,说明客户端中存在cookie且服务器缓存中存在用户信息,则跳转到访问页面,进入步骤4;否则,跳转到登录页面,进入步骤2;
步骤2、用户在登录页面上输入用户信息,客户端发送用户信息给服务器,服务器接收该用户信息后,判断登录的用户信息是否正确,若用户信息不正确,则提示用户;若用户信息正确,则将用户信息存入缓存中,如果缓存中存在相同的用户信息,则删除该用户信息,防止同一个用户信息登录多次,如果缓存中不存在相同的用户信息,则保存该用户信息;
同时,设置缓存的生命周期,缓存时间不断更新,使得缓存的生命周期是从最后一次访问页面的时间记起,如设置缓存的生命周期为30min,若在2:45时输入用户信息进行页面访问,若用户在该生命周期内有进行操作,则此时该用户信息保存的时间为2:45~3:15,但若在3:00时再次输入该用户信息进行页面访问,用户在该生命周期内有进行操作,则此时该用户信息保存的时间为3:00~3:30;若用户在该生命周期内不进行任何操作,则默认用户退出,直接进入步骤5;
步骤3、将用户信息作为value,并生成一个随机数作为key,key与value一一对应,将key保存到cookie中,并设置cookie的路径为顶级域以供多个工程共享,即所有工程的网站访问均可使用通过置cookie获取到的用户信息;
步骤4、用户访问多个工程的页面,在访问过程中,若要用到所述用户信息,则通过cookie中的key找到value,从而获取缓存中的用户信息进行使用;若不要用到所述用户信息,则直接访问;
步骤5、当用户退出时,注销cookie和缓存的用户信息。
本发明的一种基于缓存的单点登录的系统,包括:
用户登录验证模块,用于新建一个工程,在工程的xml文件中配置一个过滤器,根据所述过滤器写一个过滤方法,通过该过滤方法验证用户是否已经登录,若用户已经登录,说明客户端中存在cookie且服务器缓存中存在用户信息,则跳转到访问页面,进入用户访问页面模块;否则,跳转到登录页面,进入用户信息判断模块;
用户信息判断模块,用于用户在登录页面上输入用户信息,客户端发送用户信息给服务器,服务器接收该用户信息后,判断登录的用户信息是否正确,若用户信息不正确,则提示用户;若用户信息正确,则将用户信息存入缓存中,如果缓存中存在相同的用户信息,则删除该用户信息,防止同一个用户信息登录多次,如果缓存中不存在相同的用户信息,则保存该用户信息;
同时,设置缓存的生命周期,缓存时间不断更新,使得缓存的生命周期是从最后一次访问页面的时间记起,如设置缓存的生命周期为30min,若在2:45时输入用户信息进行页面访问,若用户在该生命周期内有进行操作,则此时该用户信息保存的时间为2:45~3:15,但若在3:00时再次输入该用户信息进行页面访问,用户在该生命周期内有进行操作,则此时该用户信息保存的时间为3:00~3:30;若用户在该生命周期内不进行任何操作,则默认用户退出,直接进入用户信息注销模块;
用户信息共享模块,用于将用户信息作为value,并生成一个随机数作为key,key与value一一对应,将key保存到cookie中,并设置cookie的路径为顶级域以供多个工程共享,即所有工程的网站访问均可使用通过置cookie获取到的用户信息;
用户访问页面模块,用于用户访问多个工程的页面,在访问过程中,若要用到所述用户信息,则通过cookie中的key找到value,从而获取缓存中的用户信息进行使用;若不要用到所述用户信息,则直接访问;
用户信息注销模块,用于当用户退出时,注销cookie和缓存的用户信息。
综上所述,本发明的优点如下:
首先在服务器中部署多个工程,用户第一次访问其中一个工程的网站时,客户端会发送用户信息到服务端进行验证,验证通过后,生成cookie,设置其路径为顶级域,并保存一个随机数,缓存的用户信息以这个随机数作为key,用户信息作为value,保存用户信息;当用户访问其他工程的网站时,客户端会通过cookie从缓存中获取用户信息;当用户退出某一个工程的网站时,清除cookie及缓存的用户信息,其他工程的网站也实现退出。本发明实现了用户只要登录一次,就可以访问所有工程的网站,所有工程共享缓存的同一个用户信息,替代了原先每个工程通过session存储用户信息的方式,节省了内存空间,也便于注销用户信息;而且,在用户登录时,若缓存中已有用户信息,则删除该用户信息,防止同一个账号登录多次。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (6)
1.一种基于缓存的单点登录的方法,其特征在于:包括如下步骤:
步骤1、验证用户是否已经登录,若用户已经登录,则跳转到访问页面,进入步骤4;否则,跳转到登录页面,进入步骤2;
步骤2、用户在登录页面上输入用户信息,客户端发送用户信息给服务器,服务器接收用户信息后,判断登录的用户信息是否正确,若用户信息不正确,则提示用户;若用户信息正确,则将用户信息存入缓存中,如果缓存中存在相同的用户信息,则删除该用户信息,如果缓存中不存在相同的用户信息,则保存该用户信息;
步骤3、将用户信息作为value,并生成一个随机数作为key,key与value一一对应,将key保存到cookie中,并设置cookie的路径为顶级域以供多个工程共享;
步骤4、用户访问多个工程的页面,在访问过程中,若要用到所述用户信息,则通过cookie中的key找到value,从而获取缓存中的用户信息进行使用;若不要用到所述用户信息,则直接访问。
2.根据权利要求1所述的一种基于缓存的单点登录的方法,其特征在于:所述步骤1中验证用户是否已经登录的验证方式具体如下:
新建一个工程,在工程的xml文件中配置一个过滤器,根据所述过滤器写一个过滤方法,通过该过滤方法验证用户是否已经登录。
3.根据权利要求1所述的一种基于缓存的单点登录的方法,其特征在于:所述步骤4之后还包括:
步骤5、当用户退出时,注销cookie和缓存的用户信息。
4.一种基于缓存的单点登录的系统,其特征在于:包括:
用户登录验证模块,用于验证用户是否已经登录,若用户已经登录,则跳转到访问页面,进入用户访问页面模块;否则,跳转到登录页面,进入用户信息判断模块;
用户信息判断模块,用于用户在登录页面上输入用户信息,客户端发送用户信息给服务器,服务器接收用户信息后,判断登录的用户信息是否正确,若用户信息不正确,则提示用户;若用户信息正确,则将用户信息存入缓存中,如果缓存中存在相同的用户信息,则删除该用户信息,如果缓存中不存在相同的用户信息,则保存该用户信息;
用户信息共享模块,用于将用户信息作为value,并生成一个随机数作为key,key与value一一对应,将key保存到cookie中,并设置cookie的路径为顶级域以供多个工程共享;
用户访问页面模块,用于用户访问多个工程的页面,在访问过程中,若要用到所述用户信息,则通过cookie中的key找到value,从而获取缓存中的用户信息进行使用;若不要用到所述用户信息,则直接访问。
5.根据权利要求4所述的一种基于缓存的单点登录的系统,其特征在于:所述用户登录验证模块中验证用户是否已经登录的验证方式具体如下:
新建一个工程,在工程的xml文件中配置一个过滤器,根据所述过滤器写一个过滤方法,通过该过滤方法验证用户是否已经登录。
6.根据权利要求4所述的一种基于缓存的单点登录的系统,其特征在于:所述用户访问页面模块之后还包括:
用户信息注销模块,用于当用户退出时,注销cookie和缓存的用户信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511016259.6A CN105472029B (zh) | 2015-12-29 | 2015-12-29 | 一种基于缓存的单点登录的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511016259.6A CN105472029B (zh) | 2015-12-29 | 2015-12-29 | 一种基于缓存的单点登录的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105472029A true CN105472029A (zh) | 2016-04-06 |
CN105472029B CN105472029B (zh) | 2019-06-21 |
Family
ID=55609291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511016259.6A Active CN105472029B (zh) | 2015-12-29 | 2015-12-29 | 一种基于缓存的单点登录的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105472029B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827658A (zh) * | 2016-05-30 | 2016-08-03 | 无锡天脉聚源传媒科技有限公司 | 一种多应用同步登录的方法及装置 |
CN108268780A (zh) * | 2016-12-30 | 2018-07-10 | 航天信息股份有限公司 | 一种用于对系统访问进行控制的方法及装置 |
CN110324307A (zh) * | 2019-05-16 | 2019-10-11 | 平安科技(深圳)有限公司 | 一种基于云技术的单点登录验证方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771676A (zh) * | 2008-12-31 | 2010-07-07 | 华为技术有限公司 | 一种跨域授权的设置、鉴权方法、相关装置及系统 |
CN102098158A (zh) * | 2009-12-10 | 2011-06-15 | 北大方正集团有限公司 | 跨域名单点登录和注销的方法、系统及相应设备 |
CN104836803A (zh) * | 2015-04-24 | 2015-08-12 | 北京工商大学 | 基于session机制的单点登录方法 |
-
2015
- 2015-12-29 CN CN201511016259.6A patent/CN105472029B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771676A (zh) * | 2008-12-31 | 2010-07-07 | 华为技术有限公司 | 一种跨域授权的设置、鉴权方法、相关装置及系统 |
CN102098158A (zh) * | 2009-12-10 | 2011-06-15 | 北大方正集团有限公司 | 跨域名单点登录和注销的方法、系统及相应设备 |
CN104836803A (zh) * | 2015-04-24 | 2015-08-12 | 北京工商大学 | 基于session机制的单点登录方法 |
Non-Patent Citations (1)
Title |
---|
廖礼萍,鲍有文: "基于跨域Cookie的单点登录系统的设计与实现", 《北京联合大学学报(自然科学版)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827658A (zh) * | 2016-05-30 | 2016-08-03 | 无锡天脉聚源传媒科技有限公司 | 一种多应用同步登录的方法及装置 |
CN108268780A (zh) * | 2016-12-30 | 2018-07-10 | 航天信息股份有限公司 | 一种用于对系统访问进行控制的方法及装置 |
CN110324307A (zh) * | 2019-05-16 | 2019-10-11 | 平安科技(深圳)有限公司 | 一种基于云技术的单点登录验证方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105472029B (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102857484B (zh) | 一种实现单点登录的方法、系统及装置 | |
CN104580074B (zh) | 客户端应用的登录方法及其相应的服务器 | |
US8370908B2 (en) | Decreasing login latency | |
CN106254451B (zh) | 嵌入式设备web菜单控制系统及方法 | |
CN105592011A (zh) | 一种账号登录方法及装置 | |
CN102098158A (zh) | 跨域名单点登录和注销的方法、系统及相应设备 | |
US11470067B1 (en) | Secure authentication of devices | |
CN110138747B (zh) | 一种验证账号登录状态的方法及系统 | |
CN110519240A (zh) | 一种单点登录方法、装置及系统 | |
CN111431920A (zh) | 一种基于动态令牌的安全控制方法及系统 | |
CN107040560A (zh) | 一种基于业务平台的业务处理方法及装置 | |
CN103763326A (zh) | 一种基于Memcache和Cookie的网站一站式登录方法和系统 | |
US20200125715A1 (en) | Multidevice user authentication in group-based communication systems | |
CN102801713A (zh) | 网站登录方法、系统和访问管理平台 | |
CN106899564A (zh) | 一种登录方法和装置 | |
CN105472029A (zh) | 一种基于缓存的单点登录的方法及系统 | |
CN103401861B (zh) | 代理上网识别方法及装置 | |
JP2021039585A (ja) | クライアント又はサーバとの接続を制御する方法 | |
CN112511316A (zh) | 单点登录接入方法、装置、计算机设备及可读存储介质 | |
CN104065674A (zh) | 终端设备以及信息处理方法 | |
CN105224541B (zh) | 数据的唯一性控制方法、信息存储方法及装置 | |
CN111988262B (zh) | 认证方法、装置及服务器、存储介质 | |
KR20200125279A (ko) | 블록 체인기반의 사용자 인증 방법, 시스템 | |
CN108234122A (zh) | 令牌校验方法和装置 | |
US20210014278A1 (en) | Multi-tenant authentication framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 350108 6, No. 1 Innovation Park, No. 3 east science and technology road, Minhou street, Minhou, Fuzhou. Applicant after: Returnstar Interactive Technology Group Co., Ltd. Address before: 350000 8 tower building, Orange Garden Industrial Park, 618 Jinshan Road, Jianxin Town, Cangshan District, Fuzhou, Fujian. Applicant before: Returnstar Interactive Technology Group Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |