使用Python的Flask库实现的登录接口、查询金额接口和注销接口的示例。
/login
接口时,代码会获取请求中的用户名和密码。如果用户名和密码匹配(在示例中是'admin'和'admin123'),则会将用户名保存在session中,并将session设置为永久有效。这意味着用户在60分钟内可以保持登录状态,即使关闭浏览器或重新启动应用程序。/query_balance
接口时,代码首先检查session中是否存在用户名并且用户名为'admin',以确保用户已经登录。如果没有登录或者登录的用户名不是'admin',则返回提示信息"Please login first"。如果用户已经登录,代码可以添加查询金额的逻辑,并将金额作为JSON响应返回给用户。/logout
接口时,代码首先检查session中是否存在用户名。如果没有登录,则返回提示信息"Please login first"。如果用户已经登录,代码会从session中删除保存的用户名,并销毁整个session对象,以注销用户。app.secret_key
用于设置session密钥。import os
from datetime import timedelta
from flask import Flask, request, session, jsonify
app = Flask(__name__)
app.secret_key = os.urandom(24) # 随机生成session密钥
app.permanent_session_lifetime = timedelta(minutes=60) # 设置session时效为60分钟
@app.route('/login', methods=['POST'])
def login():
username = request.form.get('username')
password = request.form.get('password')
if username == 'admin' and password == 'admin123':
session.permanent = True # 设置session为永久有效
session['username'] = username
return 'Login successful'
else:
return 'Invalid username or password'
@app.route('/query_balance', methods=['GET'])
def query_balance():
if 'username' not in session or session['username'] != 'admin':
return 'Please login first'
# 这里可以添加查询金额的逻辑
balance = 8848
return jsonify({'balance': balance})
@app.route('/logout', methods=['POST'])
def logout():
if 'username' not in session:
return 'Please login first'
session.pop('username', None) # 删除session中的'username'键
session.clear() # 销毁整个session对象
return 'Logout successful'
if __name__ == '__main__':
app.run()
请求登陆接口,登陆成功返回提示