当我尝试使用postman命中端点时,我看到此错误:
{ "errors": [ "token contains an invalid number of segments" ] }
控制台:TypeError:无法读取未定义的属性'jwt'
xqk2d5yq1#
问题有点模糊,但在本例中-TypeError: Cannot read property 'jwt' of undefined。应该具有jwt属性的对象是未定义的,所以令牌本身并不存在,应该持有它的对象也不存在。更一般地说,如果令牌格式不正确,则可能会发生此错误。它应该有3个部分,像这样[由.分隔]-
TypeError: Cannot read property 'jwt' of undefined
jwt
.
eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
这些段中的每一个都可以由base64解码,以检查header、payload和signature。结果就是-来自-https://jwt.io/ x1c 0d1xhttps://www.ibm.com/docs/en/cics-ts/6.1_beta?topic=cics-json-web-token-jwt提供的更多信息表头标头通常由两部分组成:标记的类型(即JWT)和使用的算法(如HMAC SHA 256或RSA SHA 256)。它是Base64 Url编码的,构成JWT的第一部分。有效负载有效负载包含声明。存在一组已注册的声明,例如:国际空间站(发行人),到期(到期时间),sub(主题)和aud(受众)。这些声明不是强制性的,但建议您提供一组有用的、可互操作的声明。有效负载还可以包括定义自定义声明的额外属性,如雇员角色。通常,主题声明用于创建OpenID Connect用户主题。但是,Liberty JVM服务器可以被配置为使用一个替代声明。有效负载是Base64 Url编码的以形成JWT的第二部分。签字人为了创建签名部分,使用头中的签名算法对编码的头和编码的负载进行签名。签名用于验证JWT的发布者是否是它所声称的那个人,并确保消息在传递过程中没有被更改。更多关于规格的信息,请点击此处-https://datatracker.ietf.org/doc/html/rfc7519#page-7
header
payload
signature
1条答案
按热度按时间xqk2d5yq1#
问题有点模糊,但在本例中-
TypeError: Cannot read property 'jwt' of undefined
。应该具有
jwt
属性的对象是未定义的,所以令牌本身并不存在,应该持有它的对象也不存在。更一般地说,如果令牌格式不正确,则可能会发生此错误。
它应该有3个部分,像这样[由
.
分隔]-这些段中的每一个都可以由base64解码,以检查
header
、payload
和signature
。结果就是-
来自-https://jwt.io/ x1c 0d1x
https://www.ibm.com/docs/en/cics-ts/6.1_beta?topic=cics-json-web-token-jwt提供的更多信息
表头
标头通常由两部分组成:标记的类型(即JWT)和使用的算法(如HMAC SHA 256或RSA SHA 256)。它是Base64 Url编码的,构成JWT的第一部分。
有效负载
有效负载包含声明。存在一组已注册的声明,例如:国际空间站(发行人),到期(到期时间),sub(主题)和aud(受众)。这些声明不是强制性的,但建议您提供一组有用的、可互操作的声明。有效负载还可以包括定义自定义声明的额外属性,如雇员角色。通常,主题声明用于创建OpenID Connect用户主题。但是,Liberty JVM服务器可以被配置为使用一个替代声明。有效负载是Base64 Url编码的以形成JWT的第二部分。
签字人
为了创建签名部分,使用头中的签名算法对编码的头和编码的负载进行签名。签名用于验证JWT的发布者是否是它所声称的那个人,并确保消息在传递过程中没有被更改。
更多关于规格的信息,请点击此处-
https://datatracker.ietf.org/doc/html/rfc7519#page-7