使用JWT模块时,我收到一个错误“用户不存在错误”

2024-04-27 19:07:57 发布

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

我正在学习简单的python JWT模块。我正在使用restfull api创建一个令牌,然后使用相同的令牌来获取数据,但不幸的是,我得到了一个错误“用户不存在”。 See the way i am getting token

The way i am authenticating the user

Python代码片段

    class User:
    def __init__(self, _id, username, password):
        self.id = _id
        self.username = username
        self.password = password

users = [
    User(1, "bob", "asdf")
]


username_mapping = {u.username: u for u in users}

userid_mapping = {u.id: u for u in users}


def authenticate(username, password):
    user = username_mapping.get(username, None)
    if user and user.password == password:
        return user


def identity(payload):
    user_id = payload["identity"]
    return username_mapping.get(user_id, None)

##使用此功能进行身份验证

app = Flask(__name__)
app.secret_key = "jose"
api = Api(app)
jwt = JWT(app,authenticate, identity)


def abort_if_item_not_exist(name):
item = next(filter(lambda x: x["name"] == name, items), None)
if item == None:
    abort(404, message = "This item does not exist")
else:
        return {"item": item}


class Item(Resource):
    @jwt_required()
    def get(self,name):
        return abort_if_item_not_exist(name)
    

Tags: nameselfnoneidappgetreturnif
1条回答
网友
1楼 · 发布于 2024-04-27 19:07:57

多亏了jsp,我找到了答案,他指着一个网站说。我分析并得到了有效负载标识。然后我意识到我得到了一个标识,并且我将它与错误的值进行了比较。这只是我的打字错误

def identity(payload):
user_id = payload["identity"]
return userid_mapping.get(user_id, None) # This needs to be changed

相关问题 更多 >