如何发送和接收JWT令牌?

2024-05-29 05:56:23 发布

您现在位置:Python中文网/ 问答频道 /正文

正在尝试验证用户的令牌。在

如何在客户端发出请求(js+react):

axios({
        method: 'POST',
        url: '/verify', 
        headers: { authorization: sessionStorage.getItem('token') },
        data: {}
    })
        .then(function(response) {
            // ...
        });

如何在服务器端接收请求(python):

^{pr2}$

为什么我会得到这个错误?公司名称:

Traceback (most recent call last):
........
jwt.exceptions.DecodeError: Signature verification failed

提前谢谢你。在

注:令牌已正确发送


编辑:

找到了导致错误的原因:

@app.route('/login', methods=['POST'])
def get_user():
    // ...
    token = jwt.encode({'some': 'payload'}, 'secret', algorithm='HS256')
    return token // when I return the token here, it becomes slightly reduced

真正的代币:

b'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCJ9.Joh1R2dYzkRvDkqv3sygm5YyK8Gi4ShZqbhK2gxcs2U'

我返回的减少代币:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZCJ9.Joh1R2dYzkRvDkqv3sygm5YyK8Gi4ShZqbhK2gxcs2U

我需要如何将生成的jwt令牌发送到客户端来解决这个问题?在


Tags: 用户token客户端return错误jspostjwt
1条回答
网友
1楼 · 发布于 2024-05-29 05:56:23

这看起来像是字符串与字节编码问题。解码字节字符串:

str = byte_string.decode('UTF-8')  # turns b'123' into '123'

要将字符串编码为字节:

^{pr2}$

在将传入字符串传递给jwt.decode()之前,您可能需要将其encode转换为字节,如下所示:

jwt.decode(token.encode('UTF-8'), SECRET_KEY)

除了UTF-8之外还有其他编码,但这可能就是您需要的。在

相关问题 更多 >

    热门问题