gpt4 book ai didi

python - 如何在没有数据库、没有表单的情况下进行简单的登录

转载 作者:行者123 更新时间:2023-12-01 05:04:22 25 4
gpt4 key购买 nike

我想添加一个简单的登录功能,可以登录或不登录(不需要存储特定于用户的数据)。

我创建了一个 User 类:

class User(object):
def __init__(self, username, hash):
self.name = username
self.hash = hash

我从 INI 文件加载用户列表。

我实现了user_loader函数

@self.login_manager.user_loader
def load_user(userid):
for user in self.users:
if user.name == userid
return user
return None

登录方法中有什么内容?

@self.server.route("api/login", methods=["GET", "POST"])
def login():

我想使用 ajax 请求进行登录,在该请求中发送凭据并获取包含用户名或错误消息的 JSON 响应。

最佳答案

简单示例,将使用 POST/api/loginusername=TEST_USER&hash=TEST_HASH 数据或 GET/api/login?username=TEST_USER&hash= TEST_HASH:

class User(UserMixin):

def __init__(self, username, hash):
self.name = username
self.hash = hash

@property
def id(self):
return self.name


@self.server.route('/api/login', methods=['GET', 'POST'])
def login():
user = load_user(request.values.get('username'))
if user and user.hash == request.values.get('hash'):
login_user(user)
return jsonify(status='ok', username=user.username)
else:
return jsonify(status='error', message='wrong username or hash')

但是我更喜欢只使用 POST http 方法进行登录。

实际上,您自己的实现将依赖于您的 js 调用,例如您可以使用 request.get_json 代替 POST request.form 或 GET request.args 。和登录算法(凭据字段)。

此外,对于大量用户load_user 可能会很慢。

关于python - 如何在没有数据库、没有表单的情况下进行简单的登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25354654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com