CN106302490A - 一种基于Token的Web会话构建和服务调用方法 - Google Patents
一种基于Token的Web会话构建和服务调用方法 Download PDFInfo
- Publication number
- CN106302490A CN106302490A CN201610705994.6A CN201610705994A CN106302490A CN 106302490 A CN106302490 A CN 106302490A CN 201610705994 A CN201610705994 A CN 201610705994A CN 106302490 A CN106302490 A CN 106302490A
- Authority
- CN
- China
- Prior art keywords
- token
- information
- token information
- client
- request
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000010276 construction Methods 0.000 title abstract description 4
- 235000014510 cooky Nutrition 0.000 claims abstract description 22
- 230000002688 persistence Effects 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 6
- 230000002085 persistent effect Effects 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于Token的Web会话构建和服务调用方法,属于Web应用领域,本发明要解决的技术问题为在现行的Web会话构建和服务调用中一套应用,两套认证逻辑,造成开发和后期维护工作量大,采用的技术方案为:该方法包括如下步骤:(1)、客户端通过HTTP POST请求发送账号和密码信息,账号和密码信息封装在POST请求的Body体中;(2)、若账号和密码信息有效,则服务端生成Token信息,每个Token信息有一个唯一标识即Token ID;同时将Token信息持久化保存到数据表中;(3)、将Token信息写入客户端Cookie,并通过响应的Body体回传给客户端,同时将Token信息写入线程变量。
Description
技术领域
本发明涉及web应用领域,具体地说是一种基于Token的Web会话构建和服务调用方法。
背景技术
Token 在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。
现行的Web应用,大都采用原生的session会话来维持客户端与服务器端的交互认证,即登录认证成功后,将认证信息放入session会话,对于后续请求,直接检查session会话中是否存在认证信息。
随着互联网技术的发展,众多web应用不再是传统的封闭式应用,各Web应用之间需要互联互通,这就要求Web应用需要开放部分Rest API供其他应用调用,Rest API的调用,现在多采用Token机制,大概流程是:通过有效的账号密码换取Token,成功获取Token后,可凭借该Token调用Rest API,这样便会导致一套应用,存在两套认证逻辑,内部使用session会话,外部使用Token,无疑加大了开发和后期维护的工作量。
发明内容
本发明的技术任务是提供一种基于Token的Web会话构建和服务调用方法,来解决在现行的Web会话构建和服务调用中一套应用,两套认证逻辑,造成开发和后期维护工作量大的问题。
本发明的技术任务是按以下方式实现的,一种基于Token的Web会话构建和服务调用方法,该方法包括如下步骤:
(1)、客户端通过HTTP POST请求发送账号和密码信息,账号和密码信息封装在POST请求的Body体中;
(2)、若账号和密码信息有效,则服务端生成Token信息,每个Token信息有一个唯一标识即Token ID;同时将Token信息持久化保存到数据表中;
(3)、将Token信息写入客户端Cookie,并通过响应的Body体回传给客户端,同时将Token信息写入线程变量;
(4)、对于Web应用内部请求,客户端浏览器发送请求时,Web应用内部请求会通过客户端Cookie自动携带Token信息;
(5)、对于外部服务调用,第三方应用从响应的Body体中解析出Token信息,再凭借该Token信息调用Rest服务;
(6)、Web应用最前端放置过滤器,负责拦截所有请求,拦截到每个请求后,先尝试从请求携带的客户端Cookie中查找Token信息,并判断是否查找到Token 信息:
①、若从客户端Cookie中查找到Token 信息,在执行步骤(7);
②、若从客户端Cookie中查找不到Token信息,则进一步尝试从请求的Header中查找,如果仍然查找不到,则表示该请求未携带认证信息;
(7)、查找到Token 信息后,则进一步验证该Token信息的有效性,如果Token信息有效,则获取Token关联的账号信息,并放入线程变量,再将该请求继续向后端传递;
(8)、请求到达***后端,后端程序则可直接从线程变量中获取认证信息,并执行相关业务操作。
作为优选,所述步骤(2)中Token 信息采用32位UUID作为Token ID。
作为优选,所述步骤(2)中保存的Token信息包括Token ID、Token创建时间、Token过期时间、Token当前状态以及Token关联的账号信息。
作为优选,所述步骤(6)中Web应用接收到客户端浏览器请求后,先从客户端Cookie中获取Token信息,若获取不到,再从请求Header中获取。
本发明的基于Token的Web会话构建和服务调用方法具有以下优点:
1、本发明同时实现自定义会话的构建和Rest API的调用,不需要同时开发维护两套认证逻辑,能有效减少开发和后期维护的工作量;对于web应用开发层面,开发者只需要开发一套认证逻辑,减少了开发工作量;对于后期维护层面,也只需要维护一套认证逻辑,减少了后期维护工作量;
2、本发明的Web应用只需要开发一套基于Token的认证逻辑,即可支持web应用的内部请求和外部服务调用;
3、本发明的客户端发送POST请求,通过有效的账号和密码获取Token信息,服务端生成Token信息后,会将Token信息响应给客户端,如果客户端是浏览器,则同时将Token信息写入客户端浏览器Cookie中,方便快捷,使用方便;其中,Token信息使用32位UUID做为TokenID,Token信息的有效期是2小时,Token信息同时还有状态、创建时间、失效时间、关联账号等属性信息。
本发明具有设计合理、结构简单、使用方便、一物多用等特点,因而,具有很好的推广使用价值。
附图说明
下面结合附图对本发明进一步说明。
附图1为基于Token的Web会话构建和服务调用方法的流程框图。
具体实施方式
参照说明书附图和具体实施例对本发明的基于Token的Web会话构建和服务调用方法作以下详细地说明。
实施例:
如附图1所示,本发明的基于Token的Web会话构建和服务调用方法,该方法包括如下步骤:
(1)、客户端通过HTTP POST请求发送账号和密码信息,账号和密码信息封装在POST请求的Body体中;
(2)、若账号和密码信息有效,则服务端生成Token信息,每个Token信息有一个唯一标识即Token ID;同时将Token信息持久化保存到数据表中;Token 信息采用32位UUID作为Token ID;
其中,保存的Token信息包括Token ID、Token创建时间、Token过期时间、Token当前状态以及Token关联的账号信息;
(3)、将Token信息写入客户端Cookie,并通过响应的Body体回传给客户端,同时将Token信息写入线程变量;
(4)、对于Web应用内部请求,客户端浏览器发送请求时,Web应用内部请求会通过客户端Cookie自动携带Token信息;
(5)、对于外部服务调用,第三方应用从响应的Body体中解析出Token信息,再凭借该Token信息调用Rest服务;
(6)、Web应用最前端放置过滤器,负责拦截所有请求,拦截到每个请求后,先尝试从请求携带的客户端Cookie中查找Token信息,并判断是否查找到Token 信息:
①、若从客户端Cookie中查找到Token 信息,在执行步骤(7);
②、若从客户端Cookie中查找不到Token信息,则进一步尝试从请求的Header中查找,如果仍然查找不到,则表示该请求未携带认证信息;
其中,Web应用接收到客户端浏览器请求后,先从客户端Cookie中获取Token信息,若获取不到,再从请求Header中获取;
(7)、查找到Token 信息后,则进一步验证该Token信息的有效性,如果Token信息有效,则获取Token关联的账号信息,并放入线程变量,再将该请求继续向后端传递;
(8)、请求到达***后端,后端程序则可直接从线程变量中获取认证信息,并执行相关业务操作。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的一种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (4)
1.一种基于Token的Web会话构建和服务调用方法,其特征在于该方法包括如下步骤:
(1)、客户端通过HTTP POST请求发送账号和密码信息,账号和密码信息封装在POST请求的Body体中;
(2)、若账号和密码信息有效,则服务端生成Token信息,每个Token信息有一个唯一标识即Token ID;同时将Token信息持久化保存到数据表中;
(3)、将Token信息写入客户端Cookie,并通过响应的Body体回传给客户端,同时将Token信息写入线程变量;
(4)、对于Web应用内部请求,客户端浏览器发送请求时,Web应用内部请求会通过客户端Cookie自动携带Token信息;
(5)、对于外部服务调用,第三方应用从响应的Body体中解析出Token信息,再凭借该Token信息调用Rest服务;
(6)、Web应用最前端放置过滤器,负责拦截所有请求,拦截到每个请求后,先尝试从请求携带的客户端Cookie中查找Token信息,并判断是否查找到Token 信息:
①、若从客户端Cookie中查找到Token 信息,在执行步骤(7);
②、若从客户端Cookie中查找不到Token信息,则进一步尝试从请求的Header中查找,如果仍然查找不到,则表示该请求未携带认证信息;
(7)、查找到Token 信息后,则进一步验证该Token信息的有效性,如果Token信息有效,则获取Token关联的账号信息,并放入线程变量,再将该请求继续向后端传递;
(8)、请求到达***后端,后端程序则可直接从线程变量中获取认证信息,并执行相关业务操作。
2.根据权利要求1所述的基于Token的Web会话构建和服务调用方法,其特征在于所述步骤(2)中Token 信息采用32位UUID作为Token ID。
3.根据权利要求1所述的基于Token的Web会话构建和服务调用方法,其特征在于所述步骤(2)中保存的Token信息包括Token ID、Token创建时间、Token过期时间、Token当前状态以及Token关联的账号信息。
4.根据权利要求1所述的基于Token的Web会话构建和服务调用方法,其特征在于所述步骤(6)中Web应用接收到客户端浏览器请求后,先从客户端Cookie中获取Token信息,若获取不到,再从请求Header中获取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610705994.6A CN106302490A (zh) | 2016-08-23 | 2016-08-23 | 一种基于Token的Web会话构建和服务调用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610705994.6A CN106302490A (zh) | 2016-08-23 | 2016-08-23 | 一种基于Token的Web会话构建和服务调用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106302490A true CN106302490A (zh) | 2017-01-04 |
Family
ID=57615577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610705994.6A Pending CN106302490A (zh) | 2016-08-23 | 2016-08-23 | 一种基于Token的Web会话构建和服务调用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106302490A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239308A (zh) * | 2017-06-05 | 2017-10-10 | 广东西奥物联网科技股份有限公司 | 一种浏览器的调用功能实现方法及*** |
CN108306877A (zh) * | 2018-01-30 | 2018-07-20 | 泰康保险集团股份有限公司 | 基于node js的用户身份信息的验证方法、装置和存储介质 |
CN108566360A (zh) * | 2018-01-03 | 2018-09-21 | 北京首钢自动化信息技术有限公司 | 一种信息处理方法和装置 |
CN108989332A (zh) * | 2018-08-14 | 2018-12-11 | 安徽云才信息技术有限公司 | 一种基于Redis的用户认证方法 |
CN108989334A (zh) * | 2018-08-16 | 2018-12-11 | 北京中科梧桐网络科技有限公司 | 一种基于java的sso单点登录方法 |
CN109474669A (zh) * | 2018-10-19 | 2019-03-15 | 杭州安恒信息技术股份有限公司 | 一种高准确率的互联网应用***的关联方法 |
CN109522139A (zh) * | 2018-11-23 | 2019-03-26 | 杭州数梦工场科技有限公司 | 一种数据表服务生成调用方法、装置、设备及存储介质 |
CN109962892A (zh) * | 2017-12-25 | 2019-07-02 | 航天信息股份有限公司 | 一种登录应用的认证方法及客户端、服务器 |
CN110086802A (zh) * | 2019-04-24 | 2019-08-02 | 上海易点时空网络有限公司 | 用于会话的鉴权方法及装置 |
CN110995672A (zh) * | 2019-11-20 | 2020-04-10 | 天津大学 | 一种用于软件开发的网络安全认证方法 |
CN111766814A (zh) * | 2020-07-08 | 2020-10-13 | 王善举 | 一种森林资源信息采集终端 |
CN113098977A (zh) * | 2021-04-20 | 2021-07-09 | 深圳华南城网科技有限公司 | 一种防止表单重复提交的方法及装置 |
CN115529303A (zh) * | 2022-11-07 | 2022-12-27 | 北京智象信息技术有限公司 | 一种适配Cobalt接口请求的方法、***及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635707A (zh) * | 2008-07-25 | 2010-01-27 | 国际商业机器公司 | 在Web环境中为用户提供身份管理的方法和装置 |
CN102611709A (zh) * | 2012-03-31 | 2012-07-25 | 奇智软件(北京)有限公司 | 一种对第三方资源的访问控制方法及*** |
CN102624926A (zh) * | 2012-04-11 | 2012-08-01 | 中兴通讯股份有限公司 | 能力聚合开放的方法和*** |
CN102710640A (zh) * | 2012-05-31 | 2012-10-03 | 中国联合网络通信集团有限公司 | 请求授权的方法、装置和*** |
CN103188248A (zh) * | 2011-12-31 | 2013-07-03 | 卓望数码技术(深圳)有限公司 | 基于单点登录的身份认证***及方法 |
CN104378376A (zh) * | 2014-11-18 | 2015-02-25 | 深圳中兴网信科技有限公司 | 基于soa的单点登录方法、认证服务器和浏览器 |
CN104869102A (zh) * | 2014-02-24 | 2015-08-26 | 腾讯科技(北京)有限公司 | 基于xAuth协议的授权方法、装置和*** |
-
2016
- 2016-08-23 CN CN201610705994.6A patent/CN106302490A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635707A (zh) * | 2008-07-25 | 2010-01-27 | 国际商业机器公司 | 在Web环境中为用户提供身份管理的方法和装置 |
CN103188248A (zh) * | 2011-12-31 | 2013-07-03 | 卓望数码技术(深圳)有限公司 | 基于单点登录的身份认证***及方法 |
CN102611709A (zh) * | 2012-03-31 | 2012-07-25 | 奇智软件(北京)有限公司 | 一种对第三方资源的访问控制方法及*** |
CN102624926A (zh) * | 2012-04-11 | 2012-08-01 | 中兴通讯股份有限公司 | 能力聚合开放的方法和*** |
CN102710640A (zh) * | 2012-05-31 | 2012-10-03 | 中国联合网络通信集团有限公司 | 请求授权的方法、装置和*** |
CN104869102A (zh) * | 2014-02-24 | 2015-08-26 | 腾讯科技(北京)有限公司 | 基于xAuth协议的授权方法、装置和*** |
CN104378376A (zh) * | 2014-11-18 | 2015-02-25 | 深圳中兴网信科技有限公司 | 基于soa的单点登录方法、认证服务器和浏览器 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239308A (zh) * | 2017-06-05 | 2017-10-10 | 广东西奥物联网科技股份有限公司 | 一种浏览器的调用功能实现方法及*** |
CN109962892A (zh) * | 2017-12-25 | 2019-07-02 | 航天信息股份有限公司 | 一种登录应用的认证方法及客户端、服务器 |
CN108566360A (zh) * | 2018-01-03 | 2018-09-21 | 北京首钢自动化信息技术有限公司 | 一种信息处理方法和装置 |
CN108306877B (zh) * | 2018-01-30 | 2020-11-10 | 泰康保险集团股份有限公司 | 基于node js的用户身份信息的验证方法、装置和存储介质 |
CN108306877A (zh) * | 2018-01-30 | 2018-07-20 | 泰康保险集团股份有限公司 | 基于node js的用户身份信息的验证方法、装置和存储介质 |
CN108989332A (zh) * | 2018-08-14 | 2018-12-11 | 安徽云才信息技术有限公司 | 一种基于Redis的用户认证方法 |
CN108989334A (zh) * | 2018-08-16 | 2018-12-11 | 北京中科梧桐网络科技有限公司 | 一种基于java的sso单点登录方法 |
CN109474669A (zh) * | 2018-10-19 | 2019-03-15 | 杭州安恒信息技术股份有限公司 | 一种高准确率的互联网应用***的关联方法 |
CN109522139A (zh) * | 2018-11-23 | 2019-03-26 | 杭州数梦工场科技有限公司 | 一种数据表服务生成调用方法、装置、设备及存储介质 |
CN110086802A (zh) * | 2019-04-24 | 2019-08-02 | 上海易点时空网络有限公司 | 用于会话的鉴权方法及装置 |
CN110086802B (zh) * | 2019-04-24 | 2021-11-23 | 上海易点时空网络有限公司 | 用于会话的鉴权方法及装置 |
CN110995672A (zh) * | 2019-11-20 | 2020-04-10 | 天津大学 | 一种用于软件开发的网络安全认证方法 |
CN110995672B (zh) * | 2019-11-20 | 2023-09-01 | 天津大学 | 一种用于软件开发的网络安全认证方法 |
CN111766814A (zh) * | 2020-07-08 | 2020-10-13 | 王善举 | 一种森林资源信息采集终端 |
CN113098977A (zh) * | 2021-04-20 | 2021-07-09 | 深圳华南城网科技有限公司 | 一种防止表单重复提交的方法及装置 |
CN115529303A (zh) * | 2022-11-07 | 2022-12-27 | 北京智象信息技术有限公司 | 一种适配Cobalt接口请求的方法、***及介质 |
CN115529303B (zh) * | 2022-11-07 | 2023-03-07 | 北京智象信息技术有限公司 | 一种适配Cobalt接口请求的方法、***及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106302490A (zh) | 一种基于Token的Web会话构建和服务调用方法 | |
CN108306877B (zh) | 基于node js的用户身份信息的验证方法、装置和存储介质 | |
US11595378B2 (en) | Systems and methods for providing authentication in a microservice system | |
CN107948203B (zh) | 一种容器登录方法、应用服务器、***及存储介质 | |
US20150121503A1 (en) | Method, system and storage medium for user account to maintain login state | |
US8881247B2 (en) | Federated mobile authentication using a network operator infrastructure | |
CN103001974B (zh) | 基于二维码的登录控制方法、***和装置 | |
CN105337949B (zh) | 一种SSO认证方法、web服务器、认证中心和token校验中心 | |
US11599623B2 (en) | Global identity for use in a hybrid cloud network architecture | |
CN108712426B (zh) | 基于用户行为埋点的爬虫识别方法及*** | |
US20140201814A1 (en) | Enhancing directory service authentication and authorization using contextual information | |
CN113783695A (zh) | 一种微服务架构的客户端信息认证方法及*** | |
CN105072123B (zh) | 一种集群环境下的单点登陆退出方法及*** | |
US20040078604A1 (en) | Device independent authentication system and method | |
CN109639730A (zh) | 基于令牌的http无状态协议下信息***数据接口认证方法 | |
WO2009064623A1 (en) | A network device and method for monitoring of backend transactions in data centers | |
US20130117451A1 (en) | Method, device and system for controlling web page access | |
CN109635550B (zh) | 集群数据的权限校验方法、网关及*** | |
CN108123932B (zh) | 三层架构下数据库终端身份识别的方法 | |
WO2018024176A1 (zh) | 一种防止同一用户重复登录的装置和方法 | |
US20190379675A1 (en) | Web application session security | |
US20120311674A1 (en) | Method and system for automatic generation of cache directives for security policy | |
CN105871853A (zh) | 一种入口认证方法和*** | |
CN109889511A (zh) | 进程dns活动监控方法、设备及介质 | |
US20120246215A1 (en) | Identying users of remote sessions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |
|
RJ01 | Rejection of invention patent application after publication |