javascript - 使用 Flask 检索本地存储数据

标签 javascript flask local-storage

我正在做一个需要用户登录/注销的项目。我已经设法传递数据并将它们存储在 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/

相关文章:

javascript - jQuery 中是否有 fade + disable 插件?

python - Flask Catch-All 错误 - 意外的关键字参数 'path'

python - 使用 HAproxy 时出现 Flask-SQLAlchemy "MySQL server has gone away"

python - 如何让 Flask 扩展支持 i18n?

javascript - 如果另一个 li 具有特定类,Jquery 在单击 li 类时隐藏父 div

php - 如何将 php 中的这个字符串 var 传递给 JS 函数?

javascript - 更新同一页面内的 php 变量而无需重新加载页面

local-storage - 我可以使用某种本地存储作为接近 RTC 的 getUserMedia 的临时存放位置吗?

jqgrid - 离开站点后将jqGrid的状态保存在localStorage中

html - HTML5 的本地存储有什么用?