我最近尝试了一些网页开发,并且正在尝试使用 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 上看过类似的问题,但他们似乎只谈论“解码”的定位,我认为我的位置正确
我最近在尝试构建 Anaconda 环境时遇到了这个问题。它适用于其中一种,而不适用于另一种。有多种问题可能会导致此问题,但对我来说以下方法有效:
pip install defaults
我相信这是由于尝试解决不兼容的包版本时发生的错误。