CN106302490A - 一种基于Token的Web会话构建和服务调用方法 - Google Patents

一种基于Token的Web会话构建和服务调用方法 Download PDF

Info

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
Application number
CN201610705994.6A
Other languages
English (en)
Inventor
黄启庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201610705994.6A priority Critical patent/CN106302490A/zh
Publication of CN106302490A publication Critical patent/CN106302490A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup 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

一种基于Token的Web会话构建和服务调用方法
技术领域
本发明涉及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中获取。
CN201610705994.6A 2016-08-23 2016-08-23 一种基于Token的Web会话构建和服务调用方法 Pending CN106302490A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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协议的授权方法、装置和***

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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