这个问题有点模糊,但在这种情况下 - TypeError: Cannot read property 'jwt' of undefined。
应具有属性jwt 的对象未定义。所以令牌本身不存在,应该持有它的对象也不存在。
更一般地说,如果令牌格式错误,则可能会发生此错误。
它应该有 3 个段,像这样 [由. 分隔]-
eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
这些段中的每一个都可以通过 base64 解码以检查 header、payload 和 signature。
这会导致 -
来自-https://jwt.io/
更多信息来自https://www.ibm.com/docs/en/cics-ts/6.1_beta?topic=cics-json-web-token-jwt
标题
标头通常由两部分组成:令牌的类型,即 JWT,以及使用的算法,例如 HMAC SHA256 或 RSA SHA256。它经过 Base64Url 编码,形成 JWT 的第一部分。
有效载荷
有效负载包含声明。有一组已注册的声明,例如:iss(颁发者)、exp(到期时间)、sub(主题)和 aud(受众)。这些声明不是强制性的,但建议提供一组有用的、可互操作的声明。有效负载还可以包括定义自定义声明的额外属性,例如员工角色。通常,主题声明用于创建 OpenID Connect 用户主题。但是,可以将 Liberty JVM 服务器配置为使用替代声明。有效负载经过 Base64Url 编码以形成 JWT 的第二部分。
签名
为了创建签名部分,编码的标头和编码的有效负载使用标头中的签名算法进行签名。签名用于验证 JWT 的颁发者是否就是它所说的那个人,并确保消息在此过程中没有被更改。
在此处了解有关规范的更多信息 -
https://datatracker.ietf.org/doc/html/rfc7519#page-7