基于token的客户端身份验证的方法及系统技术方案

技术编号:20286590 阅读:29 留言:0更新日期:2019-02-10 18:33
本申请公开一种基于token的客户端身份验证的方法及系统,涉及信息技术领域,方法包括:等待接收客户端发送的用户名和密码信息;判断用户名和密码信息与服务器中存储的用户名和密码信息是否匹配,若不匹配,则提示重新输入;若匹配,则生成与用户ID对应的授权令牌token;将授权令牌存储至数据库并返回至客户端;等待接收通过客户端发送的请求信息,判断请求信息中是否携带授权令牌:若携带,则判断授权令牌是否有效,若无效,返回重新登录信息;若有效,判断存储在数据库中的授权令牌和请求信息中携带的授权令牌是否一致,若一致,则验证通过;若不一致,则验证不通过,返回账户异地登录信息;若未携带授权令牌,返回重新登录信息。

Method and system of client authentication based on token

This application discloses a token-based method and system for client authentication, which covers the field of information technology. The methods include: waiting for the user name and password information sent by the receiving client; judging whether the user name and password information matches the user name and password information stored in the server; prompting for re-input if they do not match; and generating a corresponding user ID if they match. Authorization token; Store authorization token in database and return it to client; Wait for receiving request information sent through client to judge whether the request information carries authorization token; If carried, judge whether the authorization token is valid, if invalid, return login information; If valid, judge the authorization token stored in database and the grant carried in request information. If the right tokens are identical, the verification passes; if not, the verification does not pass, and returns the account remote login information; if the authorization token is not carried, the login information is returned.

【技术实现步骤摘要】
基于token的客户端身份验证的方法及系统
本申请涉及信息
,具体地说,涉及一种基于token的客户端身份验证的方法及系统。
技术介绍
Jsonwebtoken(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC7519),该token被设计为紧凑且安全的,特别适用于分布式站点的单点登陆(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。传统的基于sessino的认证,每个用户经过应用认证之后,都要在服务端做一次记录,以便用户下次请求的鉴别,通常而言session都是保存在内存中,而随着认证用户的增多,服务端的开销会明显增大,而且用户下次请求还必须要请求在这台服务器上,这样才能拿到授权的资源,这样在分布式的应用上,限制了负载均衡器的能力,也意味着限制了应用的扩展性。基于token的鉴权机制类似于http协议也是无状态的,它不需要在服务端去保留用户的认证信息或会话信息。这也就意味着基于tokent认证机制的应用不需要去考虑用户在哪一台服务器登陆了,这就为应用的扩展提供了便利。但是,Token在生成的时候就已经固定,其中存储了签发时间和过期时间,当过期后,身份验证将不通过。因此,在使用过程中,存在两个缺陷。一是不能控制token失效,同一个用户如果重新使用账户密码登录,生成新的token,旧的token任然有效,可以通过身份认证;二是同一个账户可以在多个客户端同时登录。这样,在用户密码或token泄露后,修改密码也无法阻止他人登录,而且不能及时知晓账户信息已泄露,存在安全隐患。
技术实现思路
有鉴于此,本申请所要解决的技术问题是提供了一种基于token的客户端身份验证的方法及系统,利用token与数据库校验相结合的方式,提高用户身份认证安全性,确保用户通过修改密码或退出账户重新登录等方式使用账户密码验证登录生成新的token后,旧token将不能通过身份认证,有利于确保账户安全。为了解决上述技术问题,本申请有如下技术方案:第一方面,本申请提供一种基于token的客户端身份验证的方法,其特征在于,包括:等待接收通过客户端发送的用户名和与该所述用户名对应的密码信息,所述用户名还与用户ID对应;判断所述用户名和所述密码信息与服务器中存储的用户名和密码信息是否匹配,若不匹配,则提示重新输入;若匹配,则生成与所述用户ID对应的授权令牌token;将所述授权令牌token存储至数据库,并将所述授权令牌token返回至所述客户端;等待接收通过客户端发送的请求信息,判断所述请求信息中是否携带授权令牌token:若携带有授权令牌token,则判断所述授权令牌token是否有效,若所述授权令牌token无效,则验证不通过,返回重新登录信息;若授权令牌token有效,则判断存储在所述数据库中的授权令牌token和所述请求信息中所携带的授权令牌token是否一致,若二者一致,则验证通过;若二者不一致,则验证不通过,返回账户异地登录信息;若未携带授权令牌token,则返回重新登录信息。可选地,其中:与所述用户ID对应的所述授权令牌token包括签发时间、过期时间、用户ID信息和密钥。可选地,其中:所述判断所述授权令牌token是否有效,进一步为:将与所述用户ID对应的所述授权令牌token中的过期时间与当前时间进行比较,若所述当前时间超出所述过期时间,则所述授权令牌token无效;若所述当前时间未超出所述过期时间,则所述所述授权令牌token有效。可选地,其中:所述判断存储在所述数据库中的授权令牌token和所述请求信息中所携带的授权令牌token是否一致,进一步为:根据所述请求信息中所携带的授权令牌token获取与该授权令牌token对应的用户ID,在所述数据库中查找与该用户ID对应的授权令牌token,对比所述请求信息中所携带的授权令牌token和存储在所述数据库中的且与所述用户ID对应的授权令牌token是否相同,若相同,则二者一致;若不相同,则二者不一致。第二方面,本申请提供一种基于token的客户端身份验证的系统,其特征在于,包括:信息接收模块,等待接收通过客户端发送的用户名和与该所述用户名对应的密码信息,所述用户名还与用户ID对应;token生成模块,用于判断所述用户名和所述密码信息与服务器中存储的用户名和密码信息是否匹配,若不匹配,则提示重新输入;若匹配,则生成与所述用户ID对应的授权令牌token;token处理模块,用于将所述授权令牌token存储至数据库,并将所述授权令牌token返回至所述客户端;token验证模块,用于等待接收通过客户端发送的请求信息,判断所述请求信息中是否携带授权令牌token:若携带有授权令牌token,则判断所述授权令牌token是否有效,若所述授权令牌token无效,则验证不通过,返回重新登录信息;若授权令牌token有效,则判断存储在所述数据库中的授权令牌token和所述请求信息中所携带的授权令牌token是否一致,若二者一致,则验证通过;若二者不一致,则验证不通过,返回账户异地登录信息;若未携带授权令牌token,则返回重新登录信息。可选地,其中:与所述用户ID对应的所述授权令牌token包括签发时间、过期时间、用户ID信息和密钥。可选地,其中:所述token验证模块,进一步用于将与所述用户ID对应的所述授权令牌token中的过期时间与当前时间进行比较,若所述当前时间超出所述过期时间,则所述授权令牌token无效;若所述当前时间未超出所述过期时间,则所述所述授权令牌token有效。可选地,其中:所述token验证模块,进一步用于根据所述请求信息中所携带的授权令牌token获取与该授权令牌token对应的用户ID,在所述数据库中查找与该用户ID对应的授权令牌token,对比所述请求信息中所携带的授权令牌token和存储在所述数据库中的且与所述用户ID对应的授权令牌token是否相同,若相同,则二者一致;若不相同,则二者不一致。与现有技术相比,本申请所述的基于token的客户端身份验证的方法及系统,达到了如下效果:(1)本专利技术所提供的基于token的客户端身份验证的方法及系统,在账户异地登录后将及时提醒用户,使用户的权益得到了有效的保障。(2)本专利技术所提供的基于token的客户端身份验证的方法及系统,在发现账户异地登录后,将自动跳转到重新登录页面,用户确认登录后,立即生成新的token,旧token将不能通过身份验证,从而有效避免了同一个账户可以在多个客户端同时登录的现象。(3)本专利技术所提供的基于token的客户端身份验证的方法及系统,当token泄露后,可以通过重新登录的方式使已经泄露的token失效,从而进一步有利于确保账户安全。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1所示为本申请实施例所提供的基于token的客户端身份验证的方法的一种流程图;图2所示为本申请实本文档来自技高网
...

【技术保护点】
1.一种基于token的客户端身份验证的方法,其特征在于,包括:等待接收通过客户端发送的用户名和与该所述用户名对应的密码信息,所述用户名还与用户ID对应;判断所述用户名和所述密码信息与服务器中存储的用户名和密码信息是否匹配,若不匹配,则提示重新输入;若匹配,则生成与所述用户ID对应的授权令牌token;将所述授权令牌token存储至数据库,并将所述授权令牌token返回至所述客户端;等待接收通过客户端发送的请求信息,判断所述请求信息中是否携带授权令牌token:若携带有授权令牌token,则判断所述授权令牌token是否有效,若所述授权令牌token无效,则验证不通过,返回重新登录信息;若授权令牌token有效,则判断存储在所述数据库中的授权令牌token和所述请求信息中所携带的授权令牌token是否一致,若二者一致,则验证通过;若二者不一致,则验证不通过,返回账户异地登录信息;若未携带授权令牌token,则返回重新登录信息。

【技术特征摘要】
1.一种基于token的客户端身份验证的方法,其特征在于,包括:等待接收通过客户端发送的用户名和与该所述用户名对应的密码信息,所述用户名还与用户ID对应;判断所述用户名和所述密码信息与服务器中存储的用户名和密码信息是否匹配,若不匹配,则提示重新输入;若匹配,则生成与所述用户ID对应的授权令牌token;将所述授权令牌token存储至数据库,并将所述授权令牌token返回至所述客户端;等待接收通过客户端发送的请求信息,判断所述请求信息中是否携带授权令牌token:若携带有授权令牌token,则判断所述授权令牌token是否有效,若所述授权令牌token无效,则验证不通过,返回重新登录信息;若授权令牌token有效,则判断存储在所述数据库中的授权令牌token和所述请求信息中所携带的授权令牌token是否一致,若二者一致,则验证通过;若二者不一致,则验证不通过,返回账户异地登录信息;若未携带授权令牌token,则返回重新登录信息。2.根据权利要求1所述基于token的客户端身份验证的方法,其特征在于,与所述用户ID对应的所述授权令牌token包括签发时间、过期时间、用户ID信息和密钥。3.根据权利要求2所述基于token的客户端身份验证的方法,其特征在于,所述判断所述授权令牌token是否有效,进一步为:将与所述用户ID对应的所述授权令牌token中的过期时间与当前时间进行比较,若所述当前时间超出所述过期时间,则所述授权令牌token无效;若所述当前时间未超出所述过期时间,则所述所述授权令牌token有效。4.根据权利要求2所述基于token的客户端身份验证的方法,其特征在于,所述判断存储在所述数据库中的授权令牌token和所述请求信息中所携带的授权令牌token是否一致,进一步为:根据所述请求信息中所携带的授权令牌token获取与该授权令牌token对应的用户ID,在所述数据库中查找与该用户ID对应的授权令牌token,对比所述请求信息中所携带的授权令牌token和存储在所述数据库中的且与所述用户ID对应的授权令牌token是否相同,若相同,则二者一致;若不相同,则二者不一致。...

【专利技术属性】
技术研发人员:郝敬全王涛赵建云辛国茂马述杰
申请(专利权)人:泰华智慧产业集团股份有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1