用Python写出一段登录代码
时间: 2023-11-21 11:15:07 浏览: 75
python实现kNN算法识别手写体数字的示例代码
以下是一个简单的登录代码示例,使用 Python Flask 框架实现:
```python
from flask import Flask, request, make_response, jsonify
import hashlib
app = Flask(__name__)
# 假设这是数据库中保存的用户信息
users = [{'username': 'alice', 'password': '123456'}, {'username': 'bob', 'password': '654321'}]
# 生成 token 的函数
def generate_token(username):
m = hashlib.md5()
m.update(username.encode('utf-8'))
return m.hexdigest()
# 验证账号密码的函数
def verify_user(username, password):
for user in users:
if user['username'] == username and user['password'] == password:
return True
return False
# 登录接口
@app.route('/login', methods=['POST'])
def login():
# 获取请求参数
username = request.json.get('username')
password = request.json.get('password')
# 验证账号密码
if verify_user(username, password):
# 生成 token
token = generate_token(username)
# 将 token 存储在客户端 cookie 中
resp = make_response(jsonify({'message': 'Login success'}))
resp.set_cookie('token', token)
return resp
else:
return jsonify({'message': 'Login failed'})
# 需要登录才能访问的接口
@app.route('/protected', methods=['GET'])
def protected():
# 从请求头中获取 token
token = request.cookies.get('token')
# 验证 token 的有效性
if token and token == generate_token('alice'):
return jsonify({'message': 'Hello, alice'})
else:
return jsonify({'message': 'Unauthorized access'})
if __name__ == '__main__':
app.run()
```
在上面的代码中,我们使用 Flask 实现了一个简单的登录接口和一个需要登录才能访问的接口。其中,登录接口接收用户名和密码,验证成功后生成一个 token 并将其存储在客户端的 cookie 中,然后返回登录成功的消息。需要登录才能访问的接口会从请求头中获取客户端的 cookie 中的 token,并验证其有效性,如果验证通过则返回欢迎消息,否则返回未授权的访问消息。
阅读全文