我是从教程视频中学习它的新手。我正在尝试进行身份验证并获取访问令牌。我已经在user.py中创建了用户类:
class User:
def __init__(self, _id, username, password):
self.id = _id,
self.username = username,
self.password = password
在mysecurity.py中:
from werkzeug.security import safe_str_cmp
from user import User
users = [
User(1, 'user1', 'abcxyz'),
]
username_table = {u.username: u for u in users}
userid_table = {u.id: u for u in users}
def authenticate(username, password):
user = username_table.get(username, None)
print(username) # user1
print(password) # abcxyz
print(username_table) #{('user1',): <user.User object at 0x000001AD37543358>}
print(user) # None
if user and safe_str_cmp(user.password.encode('utf-8'), password.encode('utf-8')):
return user
def identity(payload):
user_id = payload['identity']
return userid_table.get(user_id, None)
正如你所看到的,我试图调试打印出所有内容。在身份验证功能中,我成功地从请求中获取了用户名和密码。但在结果中,用户变量为无。看起来.get方法不起作用,这是导致错误的原因,但我不明白为什么我在那里得到None。我已经在打印功能前面显示了输出
我想你的程序有一个输入错误。请删除
User
类的__init__
中用户名后的,
。这在语法上是正确的,并且是用一个元素创建元组的方法,而这个元素不是您所需要的相关问题 更多 >
编程相关推荐