前后端数据交互方法、装置、服务器及存储介质制造方法及图纸

技术编号:37386213 阅读:7 留言:0更新日期:2023-04-27 07:26
本发明专利技术提供了一种前后端数据交互方法、装置、服务器及存储介质,其中方法包括接收前端发送的登录请求;利用登录请求中的用户账号数据和前端运行环境数据生成第一Token ID;以第一Token ID作为JWT有效载荷中的jti属性生成JWT身份安全令牌;将JWT身份安全令牌返回给前端;接收前端发送的携带有所述JWT身份安全令牌的业务请求;解析JWT身份安全令牌获得第一Token ID;利用业务请求中的用户账号数据和前端运行环境数据生成第二Token ID;比对第一Token ID和第二Token ID;若第一Token ID和第二Token ID相同,则执行业务请求的业务逻辑获得业务数据;将业务数据返回给前端。本发明专利技术当用户账号或前端运行环境发生改变时,JWT Token会失效,无法通过验证,强化了对前端用户身份的绑定。身份的绑定。身份的绑定。

【技术实现步骤摘要】
前后端数据交互方法、装置、服务器及存储介质


[0001]本专利技术涉及数据交互
,尤其涉及一种前后端数据交互方法、装置、服务器及存储介质。

技术介绍

[0002]在互联网开发中,前后端的数据传输经常会用到基于HTTP协议的API接口,HTTP是无状态的,为了达到身份验证或鉴权目的,目前常规做法是使用令牌(token)的鉴权机制。Json Web Token(以下称JWT)是一个开放的标准(rfc7519),是令牌鉴权的一种具体实现方式。它定义了一种紧凑且自包含的方式,用于在各方之间以JSON对象方式安全地传输信息。
[0003]标准的JWT方案解决了用户认证的问题,但是存在的不足有:
[0004]1、有滥用、多用的风险,一个JWT令牌被生成后,用户可以将其复制给别人共享使用,权限和业务数据边界难以被真正限定。
[0005]2、存在被盗用的风险,黑客可以盗取用户JWT令牌,伪装成用户向后端发起请求获取数据,导致业务数据泄露,用户的身份认证难以被保护。
[0006]因此,现有技术还有待于改进和发展。

技术实现思路

[0007]本专利技术的主要目的旨在提供一种前后端数据交互方法、装置、设备及存储介质,以解决现有技术所述的上述问题。
[0008]本专利技术第一方面提供了一种前后端数据交互方法,包括以下步骤:
[0009]接收前端发送的登录请求;
[0010]利用所述登录请求中的用户账号数据和前端运行环境数据生成第一Token ID;
[0011]以所述第一Token ID作为JWT有效载荷中的jti属性生成JWT身份安全令牌;
[0012]将所述JWT身份安全令牌返回给所述前端;
[0013]接收所述前端发送的业务请求,所述业务请求中携带有所述JWT身份安全令牌;
[0014]解析所述JWT身份安全令牌获得所述第一Token ID;
[0015]利用所述业务请求中的用户账号数据和前端运行环境数据生成第二Token ID;
[0016]比对所述第一Token ID和所述第二Token ID;
[0017]若所述第一Token ID和所述第二Token ID相同,则执行所述业务请求的业务逻辑获得业务数据;
[0018]将所述业务数据返回给所述前端。
[0019]在本专利技术第一方面一种可选的实施实施方式中,所述利用所述登录请求中的用户账号数据和前端运行环境数据生成第一Token ID包括:
[0020]从所述登录请求的用户账号数据中获取得到第一用户ID;
[0021]从所述登录请求的前端运行环境数据中获取得到第一用户IP和第一浏览器环境数据;
[0022]获取预存的字符串;
[0023]将所述第一用户ID、所述第一用户IP、所述第一浏览器环境数据和所述字符串依次拼接后通过预设的MD5信息摘要算法生成所述第一Token ID。
[0024]在本专利技术第一方面一种可选的实施实施方式中,所述将所述第一Token ID作为JWT有效载荷中的jti属性生成JWT身份安全令牌包括:
[0025]将所述第一Token ID写入所述JWT有效载荷的所述jti属性中,并根据预先设置配置好所述JWT有效载荷中的其他属性和JWT头部;
[0026]对配置好的所述JWT头部和所述JWT有效载荷分别进行base64编码并通过预设的分隔号连接起来;
[0027]通过所述JWT头部中记载的签名算法对连接后的JWT头部编码数据和JWT有效载荷编码数据进行签名获得签名哈希;
[0028]通过所述分隔号将所述签名哈希连接在所述JWT有效载荷编码数据之后,获得所述JWT身份安全令牌。
[0029]在本专利技术第一方面一种可选的实施实施方式中,所述解析所述JWT身份安全令牌获得所述第一Token ID包括:
[0030]通过所述JWT身份安全令牌中的所述签名哈希校验所述JWT身份安全令牌中的所述JWT头部编码数据和所述JWT有效载荷编码数据是否被篡改;
[0031]若所述JWT头部编码数据和所述JWT有效载荷编码数据未被篡改;
[0032]对所述JWT有效载荷编码数据进行base64解码,获得所述JWT有效载荷;
[0033]从所述JWT有效载荷的jti属性中获得所述第一Token ID。
[0034]在本专利技术第一方面一种可选的实施实施方式中,所述利用所述业务请求中的用户账号数据和前端运行环境数据生成第二Token ID包括:
[0035]从所述业务请求的用户账号数据中获取得到第二用户ID;
[0036]从所述业务请求的前端运行环境数据中获取得到第二用户IP和第二浏览器环境数据;
[0037]获取预设的所述字符串;
[0038]将所述第二用户ID、所述第二用户IP、所述第二浏览器环境数据和所述字符串依次拼接后通过预设的所述MD5信息摘要算法生成所述第二Token ID。
[0039]在本专利技术第一方面一种可选的实施实施方式中,所述利用所述登录请求中的用户账号数据和前端运行环境数据生成第一Token ID之前包括:
[0040]从所述登录请求中解析得到用户账号数据;
[0041]对所述用户账号数据进行验证;
[0042]当所述用户账号数据验证通过时,再从所述登录请求中解析得到前端运行环境数据。
[0043]在本专利技术第一方面一种可选的实施实施方式中,所述签名算法为SHA256算法,所述通过所述JWT头部中记载的签名算法对连接后的JWT头部编码数据和JWT有效载荷编码数据进行签名获得签名哈希包括:
[0044]获取预存的公钥;
[0045]利用所述公钥并基于SHA256算法对连接后的JWT头部编码数据和JWT有效载荷编
码数据进行签名运算,获得所述签名哈希。
[0046]本专利技术第二方面提供了一种数据交互装置,用于服务器,所述数据交互装置包括:
[0047]登录请求接收模块,用于接收前端发送的登录请求;
[0048]第一Token ID生成模块,用于利用所述登录请求中的用户账号数据和前端运行环境数据生成第一Token ID;
[0049]令牌生成模块,用于以所述第一Token ID作为JWT有效载荷中的jti属性生成JWT身份安全令牌;
[0050]令牌返回模块,用于将所述JWT身份安全令牌返回给所述前端;
[0051]业务请求接收模块,用于接收所述前端发送的业务请求,所述业务请求中携带有所述JWT身份安全令牌;
[0052]令牌解析模块,用于解析所述JWT身份安全令牌获得所述第一Token ID;
[0053]第二Token ID生成模块,用于利用所述业务请求中的用户账号数据和前端运行环境数据生成第二Token ID;
[0054]标识比对模块,用于比对所述第一Token ID和所述第二Token 本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种前后端数据交互方法,其特征在于,包括以下步骤:接收前端发送的登录请求;利用所述登录请求中的用户账号数据和前端运行环境数据生成第一Token ID;以所述第一Token ID作为JWT有效载荷中的jti属性生成JWT身份安全令牌;将所述JWT身份安全令牌返回给所述前端;接收所述前端发送的业务请求,所述业务请求中携带有所述JWT身份安全令牌;解析所述JWT身份安全令牌获得所述第一Token ID;利用所述业务请求中的用户账号数据和前端运行环境数据生成第二Token ID;比对所述第一Token ID和所述第二Token ID;若所述第一Token ID和所述第二Token ID相同,则执行所述业务请求的业务逻辑获得业务数据;将所述业务数据返回给所述前端。2.根据权利要求1所述的前后端数据交互方法,其特征在于,所述利用所述登录请求中的用户账号数据和前端运行环境数据生成第一Token ID包括:从所述登录请求的用户账号数据中获取得到第一用户ID;从所述登录请求的前端运行环境数据中获取得到第一用户IP和第一浏览器环境数据;获取预存的字符串;将所述第一用户ID、所述第一用户IP、所述第一浏览器环境数据和所述字符串依次拼接后通过预设的MD5信息摘要算法生成所述第一Token ID。3.根据权利要求1所述的前后端数据交互方法,其特征在于,所述将所述第一Token ID作为JWT有效载荷中的jti属性生成JWT身份安全令牌包括:将所述第一Token ID写入所述JWT有效载荷的所述jti属性中,并根据预先设置配置好所述JWT有效载荷中的其他属性和JWT头部;对配置好的所述JWT头部和所述JWT有效载荷分别进行base64编码并通过预设的分隔号连接起来;通过所述JWT头部中记载的签名算法对连接后的JWT头部编码数据和JWT有效载荷编码数据进行签名获得签名哈希;通过所述分隔号将所述签名哈希连接在所述JWT有效载荷编码数据之后,获得所述JWT身份安全令牌。4.根据权利要求3所述的前后端数据交互方法,其特征在于,所述解析所述JWT身份安全令牌获得所述第一Token ID包括:通过所述JWT身份安全令牌中的所述签名哈希校验所述JWT身份安全令牌中的所述JWT头部编码数据和所述JWT有效载荷编码数据是否被篡改;若所述JWT头部编码数据和所述JWT有效载荷编码数据未被篡改;对所述JWT有效载荷编码数据进行base64解码,获得所述JWT有效载荷;从所述JWT有效载荷的jti属性中获得所述第一Token ID。5.根据权利要求2所述的前后端数据交互方法,其特征在于,所述利用所述业务请求中的用户账号数据和前端运行环境数据生成第二Token ID包括:从所述业务请求的用户账号数据...

【专利技术属性】
技术研发人员:王斌熊干龚佳乐田少军刘伟许帆
申请(专利权)人:湖南牙医帮科技有限公司
类型:发明
国别省市:

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

1