1. 概念:
除了请求对象之外还有一种称为 session 的对象,允许你在不同请求 之间储存信息。这个对象相当于用密钥签名加密的 cookie ,即用户可以查看你的 cookie ,但是如果没有密钥就无法修改它。
使用会话之前你必须设置一个密钥。
2. 代码:
from flask import Flask, jsonify, request, session
from os import urandom
app = Flask(__name__)
# app.config["SECRET_KEY"] = urandom(50)
app.secret_key = urandom(50)
@app.route("/login", methods=["POST"])
def login():
""" 登录
username: asd123
password: asdasd
:return:
"""
try:
my_json = request.get_json()
except Exception:
my_json = {}
if not my_json:
my_json = {}
username = my_json.get("username")
password = my_json.get("password")
if not all([username, password]):
return jsonify(code=400, msg="参数不完成")
if username != "asd123" or password != "asdasd":
return jsonify(code=401, msg="用户名或密码错误")
else:
# 如果验证成功,将用户名加密并保存在cookie中
session["username"] = username
return jsonify(code=200, msg="登录成功")
@app.route("/session", methods=["GET"])
def check_session():
"""登录校验"""
username = session.get("username")
if username:
return jsonify(msg=username)
else:
return jsonify(msg="登录校验未通过")
@app.route("/logout", methods=["DELETE"])
def logout():
"""退出登录"""
# 清除session数据
session.clear()
return jsonify(msg="退出登录成功")
if __name__ == '__main__':
app.run(host="0.0.0.0", debug=True)