使用 Flask 检索 localStorage 数据

Nam*_*Dao 4 javascript local-storage flask

我正在开发一个需要用户登录/注销的项目。我已经设法传递数据并将它们存储在本地存储中。但是,我无法找到不使用 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)
Run Code Online (Sandbox Code Playgroud)

这是 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>
Run Code Online (Sandbox Code Playgroud)

Sim*_*kov 7

localStorage存在于浏览器端。服务器无法直接访问它。

logout当用户按下应用程序中的按钮时,您需要将令牌从客户端发送到服务器。

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
}
Run Code Online (Sandbox Code Playgroud)

您的视图将收到令牌并用它做一些有用的事情。

@app.route("/logout")
def logout():
    token = request.get_json()['token']

    # log the user out

    return jsonify({'status':'success'})
Run Code Online (Sandbox Code Playgroud)