我正在做一个需要用户登录/注销的项目。我已经设法传递数据并将它们存储在 localStorage 中。但是,如果不使用 jQuery,我找不到将 Flask 与 localStorage 文件集成的最简单方法。我很想从以前已经尝试过的人那里得到一些建议。这是我的 Python 脚本和 JavaScript 代码
这是 Python Flask 脚本:
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/login")
def login():
# DO SOMETHING TO AUTHENTICATE USER AND GENERATE TOKEN
return render_template("base.html", token="token")
@app.route("/logout")
def logout():
# RETRIEVE TOKEN FROM LOCAL STORAGE
return "Success"
if __name__ == '__main__':
app.run(debug=True)
这是 HTML + JavaScript 简化代码:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1> Hello </h1>
<script type="text/javascript">
// STORE TOKEN INTO LOCALSTORAGE
localStorage.setItem("token", "{{token}}");
</script>
</body>
</html>
最佳答案
localStorage
存在于浏览器端。服务器无法直接访问它。
当用户在您的应用中按下 logout
按钮时,您需要将 token 从客户端发送到服务器。
document.getElementById('logout').onclick = function logout() {
let token = localStorage.getItem('token')
// use your favourite AJAX lib to send the token to the server as e.g. JSON
// redirect user to e.g. landing page of app if logout successul, show error otherwise
}
您的 View 将收到 token 并使用它做一些有用的事情。
@app.route("/logout")
def logout():
token = request.get_json()['token']
# log the user out
return jsonify({'status':'success'})
关于javascript - 使用 Flask 检索本地存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64218986/