小程序、pc、h5端token的jwt解密解码(base64)

这篇具有很好参考价值的文章主要介绍了小程序、pc、h5端token的jwt解密解码(base64)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:很多时候我们需要对数据进行加密解密,比如解析token等  这个时候我们就需要对其进行数据操作,而不同平台的加密解密方法也是不一样的,这里我做一下记录。

我们先来了解一下 jwt 全称是JSON WEB TOKEN 

JWT是用于用户与服务器之间身份认证的密码。 这个“密码”的作用简单来说就是一个:就是告诉服务器当前用户是谁。

用户登录后,服务端根据一定的规则,生成TOKEN。后续用户在每次请求时,将TOKEN携带上一起发送给服务器。

JWT 一般由三部分构成 分别是header、payload以及signature

header: 一般是一些固定的信息

{
  'typ': 'JWT',    // 声明类型
  'alg': 'HS256'   // 声明加密的算法 通常是 SHA256 HMAC 
}

payload:信息的主要载体,也可以是空的,返回的一些个人信息一般也是放在这

{
  avatarUrl: "https://thirdwx.qlogo.cn/mmopen/vi_32/jLcwsTs1QkicaJnMGt2vP7LaXUtIq8Q7bsRWIk2jTetG3agwoRRDEFAHEIgibDR5IqrztukRYp9waWNX58SjujZQ/132"
  city: ""
  country: ""
  gender: 0
  language: "zh_CN"
  nickName: "Demons."
  province: ""
}

signature:服务器用于验证该请求的token是否合法

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

根据自己的规则算法生成的一串例如这样的字符串

= = = = = = = = = = = = = = = = = = = = = = = 分割 = = = = = = = = = = = = = = = = = = = = = = = 

接下来就是不同端对于token的解析

h5 pc

let token = res.data.token.split('.')
// 通过split()方法将token转为字符串数组
// 这样得到的长度为3的数组 分别就是 header、payload 以及signature
// 我们可以通过访问数组下标的方式拿到主要存数据的payload 再进行解析 -----

// 格式化数据
token = token[1].replace(/-/g, "+").replace(/_/g, "/")

let userinfo = JSON.parse(decodeURIComponent(escape(window.atob(token)))); 
// 这样就能到到我们需要的信息的json数据

在h5 pc我们能用到window  但在小程序里没有这玩意 这个时候atob() 这个方法就不适用了

就需要用到其他的方法 

微信小程序

// 进行分割+格式化
let token = res.data.token.split('.')
let userinfo = token[1].replace(/-/g, '+').replace(/_/g, '/')


// 解码base
let info = new Buffer(userinfo, 'base64').toString('utf8')

// 得到的这个info就是解析后的json对象
console.log("info》》》》》",info)

原创码字不易,如果你觉得对你有帮助的好劳烦你动动你的小手点个赞,当然关注收藏三连就更好了!!!^_^!文章来源地址https://www.toymoban.com/news/detail-491156.html

到了这里,关于小程序、pc、h5端token的jwt解密解码(base64)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Base64加密解密,【微信小程序】,最新Android面试合集

    import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import tsou.com.encryption.R; import tsou.com.encryption.base64.Base64Utils; /** 一、什么Base64算法? Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一, Base64并不是安全

    2024年03月24日
    浏览(46)
  • uniapp开发微信小程序使用base64进行加密解密

    涉及场景:uniapp开发微信小程序需要使用base64进行加解密。 涉及依赖包:base-64,utf8 涉及到问题描述:首先尝试引入js-base64这个包,经过尝试后发现无法使用,为什么无法使用不晓得,没研究出来。再搜索中找到一篇关于《uniapp使用base64》的文章,文章中使用base64这个包,经

    2024年02月16日
    浏览(55)
  • JWT Token在线解析解码

    项目使用 spring boot + shiro + jwt 作为授权登录,调用登录接口,生成如下token:

    2024年02月11日
    浏览(62)
  • taro 支付宝/微信小程序/h5 上传 - base64的那些事儿

    支付宝小程序临时path转base64 - 基础库2.0以下 支付宝小程序临时path转base64 - 基础库2.0及以上 微信小程序临时path转base64 h5临时file转base64 h5 base64转file 获取base64大小 h5 压缩base64

    2024年02月10日
    浏览(42)
  • 后端接口返回图片(数据流)前端怎么处理(ArrayBuffer转base64)【包含PC以及小程序】

    MDN-前端必看网站 #最后如果axios的封装时有封装响应拦截器,如下: 要给这个if判断的条件做补充 这里放axios官网的请求配置中 responseType 可选值参考(封装axios必须了解) axios官网地址

    2024年02月14日
    浏览(43)
  • Java实现JSON Web Token(JWT)的生成、解码和验证

    JSON Web Token(JWT)是一种用于安全传输信息的开放标准。它可以用于认证和授权用户,以及在不同系统之间传输数据。在本文中,我们将介绍如何在 Java 中使用 jjwt 库来生成、解码和验证 JWT 引入 jjwt 库 首先,你需要在你的项目中引入 jjwt 库。如果你使用 Maven,可以在 pom.xm

    2024年02月10日
    浏览(62)
  • java base64编码和解码

    Base64 编码会将字符串编码得到一个含有 A-Za-z0-9+/ 的字符串。 base64 编码和解码网上有些地方称为 base64 加密和解密,这是不准确的。base64 是不能用来加密和解密的,它只是一种编码解码方式,不能用于加密和解密,如果你想加密和解密可以选择如 AES、RSA 等加密算法。 标准的

    2024年02月15日
    浏览(44)
  • JS Base64编码和解码

    Base64 是一种编码方式,可以将任意字符(包括二进制字符流)转成可打印字符。JavaScript 定义了两个与 Base64 相关的全局方法。 btoa():字符串或二进制值转为 Base64 编码。 atob():把 Base64 编码转为原来的字符。 Base64 方法不能够操作非 ASCII 字符。 示例 要将非 ASCII 码字符转为

    2024年02月16日
    浏览(48)
  • opensl学习——base16编码解码、base64编码解码、ASCII码表、扩展ASCII码

    ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是一套基于拉丁字母的字符编码,共收录了 128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646。 ASCII 编码于 1967 年第一次发布,最后一次更新是在 1986 年,迄今为止共收录了 128 个字符,包

    2024年02月07日
    浏览(47)
  • Python中的Base64编码和解码

    Python3中Base64编码和解码,使用的是base64模块中的b64encode 和 b64decode方法,关于怎么使用,首先查看源码中的说明: b64encode : Encode the bytes-like object s using Base64 and return a bytes object b64decode : Decode the Base64 encoded bytes-like object or ASCII string s… The result is returned as a bytes object. 要点

    2024年02月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包