【发布时间】:2021-01-21 15:46:27
【问题描述】:
我正在学习简单的 python JWT 模块。我正在使用restfull api创建一个令牌,然后使用相同的令牌来获取数据,但不幸的是我收到一个错误“用户不存在”。
Python代码sn-p
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)
【问题讨论】:
-
你能发帖吗?请将令牌添加到问题中?并显示您创建它的代码
-
您是否尝试通过转至 Authorisation->Type->Bearer Token 将您的令牌插入 Postman 并将您的令牌复制粘贴到“令牌”右侧框中?
-
是的,我试过“Bearer Token”它给了我一个错误“不支持的授权类型”
-
令牌在屏幕截图中,每次我进行身份验证时都会生成新令牌。 JWT Eyj0Exaiojkv1qilcjhbgciojiuzi1nij9.eyjlehaioje2mdiwnjy5ntcsimlhdci6mtywmja2njy1nywibmjmijoxnjaymdy2nju3lcjpzgvudgl0si6mx0.mh5go-w1a4oo3q7sxuhakxzt1wwykf1t1myk8x2x8sw span>
-
我已经看到了截图,但是我无法通过仅仅看它来解码我脑海中的令牌,我想在jwt.io 上检查它,看看里面有什么。
标签: python authentication jwt token tokenize