JWT 解码,属性错误:“str”对象没有属性“解码”

问题描述 投票:0回答:1

我最近尝试了一些网页开发,并且正在尝试使用 JSON Web 令牌。我使用下面的端点作为非常基本的登录。不幸的是,我收到以下错误:

AttributeError: 'str' object has no attribute 'decode'

我和我大学的教授交谈过,他们无法找出为什么会出现这样的情况。如有任何帮助,我们将不胜感激!

谢谢

登录端点:

@app.route("/api/v1.0/login", methods=["GET"])
def login():
    auth = request.authorization
    if auth and auth.password == 'password':
        token = jwt.encode({
            'user': auth.username,
            'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=30)
        }, app.config['SECRET_KEY'])
        return jsonify( { 'token': token.decode('UTF-8') } )
    return make_response('Could not verify', 401, {
        'WWW-Authenticate': 'Basic realm = "Login required"'
    })

**进口**

from flask import Flask, make_response, jsonify, request
from bson import ObjectId
from pymongo import MongoClient
import uuid, random
import jwt
import datetime
from functools import wraps

我在 stackover flow 上看过类似的问题,但他们似乎只谈论“解码”的定位,我认为我的位置正确

python web jwt
1个回答
0
投票

我最近在尝试构建 Anaconda 环境时遇到了这个问题。它适用于其中一种,而不适用于另一种。有多种问题可能会导致此问题,但对我来说以下方法有效:

pip install defaults

我相信这是由于尝试解决不兼容的包版本时发生的错误。

© www.soinside.com 2019 - 2024. All rights reserved.