使用Python的Flask庫實(shí)現(xiàn)的登錄接口、查詢金額接口和注銷接口的示例。
- 當(dāng)用戶發(fā)送POST請(qǐng)求到
/login
接口時(shí),代碼會(huì)獲取請(qǐng)求中的用戶名和密碼。如果用戶名和密碼匹配(在示例中是'admin'和'admin123'),則會(huì)將用戶名保存在session中,并將session設(shè)置為永久有效。這意味著用戶在60分鐘內(nèi)可以保持登錄狀態(tài),即使關(guān)閉瀏覽器或重新啟動(dòng)應(yīng)用程序。 - 當(dāng)用戶發(fā)送GET請(qǐng)求到
/query_balance
接口時(shí),代碼首先檢查session中是否存在用戶名并且用戶名為'admin',以確保用戶已經(jīng)登錄。如果沒有登錄或者登錄的用戶名不是'admin',則返回提示信息"Please login first"。如果用戶已經(jīng)登錄,代碼可以添加查詢金額的邏輯,并將金額作為JSON響應(yīng)返回給用戶。 - 當(dāng)用戶發(fā)送POST請(qǐng)求到
/logout
接口時(shí),代碼首先檢查session中是否存在用戶名。如果沒有登錄,則返回提示信息"Please login first"。如果用戶已經(jīng)登錄,代碼會(huì)從session中刪除保存的用戶名,并銷毀整個(gè)session對(duì)象,以注銷用戶。 - 這個(gè)示例代碼使用了Flask的session來管理用戶登錄狀態(tài)。session是一種在服務(wù)器端存儲(chǔ)和跟蹤用戶信息的機(jī)制。在這個(gè)示例中,session使用了隨機(jī)生成的密鑰來加密和解密數(shù)據(jù),以確保安全性。
app.secret_key
用于設(shè)置session密鑰。
import os
from datetime import timedelta
from flask import Flask, request, session, jsonify
app = Flask(__name__)
app.secret_key = os.urandom(24) # 隨機(jī)生成session密鑰
app.permanent_session_lifetime = timedelta(minutes=60) # 設(shè)置session時(shí)效為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 # 設(shè)置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() # 銷毀整個(gè)session對(duì)象
return 'Logout successful'
if __name__ == '__main__':
app.run()
?請(qǐng)求登陸接口,登陸成功返回提示
?已請(qǐng)求登陸接口,查詢金額接口,返回金額
?請(qǐng)求注銷接口,返回注銷成功提示
?未登陸時(shí),請(qǐng)求注銷接口,提示請(qǐng)先登陸
?未登陸時(shí),請(qǐng)求查詢金額接口,提示請(qǐng)先登陸文章來源:http://www.zghlxwxcb.cn/news/detail-564923.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-564923.html
到了這里,關(guān)于Flask 使用Flask的session來保存用戶登錄狀態(tài)例子的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!