ご存じのように、Webアプリケーションでは、認証にセッションやCookieが必要です。 Vue.JSとFlaskのマイクロフレームワーク、例えばERPやCRMを使ってWebアプリケーションを構築しようとしています。VueとFlaskでセッションを操作する方法は?
私は混乱しています。どのようにセッションで作業できますか?我々はフラスコ内で、このようなコードを持って考えてみましょう:
import os
from flask import Flask, request, jsonify, abort, session
app = Flask(__name__)
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY') or \
'e5ac358c-f0bf-11e5-9e39-d3b532c10a28'
@app.route('/login', methods=['POST'])
def user_login():
user = request.form['user']
session['isLogged'] = True
return jsonify({'status': session['isLogged']})
@app.route('/user-info')
def user_info():
if 'isLogged' in session:
return jsonify({'user': 'ali'})
else:
return jsonify({'error': 'Authentication error'})
と私たちのフロントエンドのコードは次のようにする必要があります:私はページを更新するまで
mounted() {
this.checkIsLogged();
},
methods: {
checkIsLogged() {
fetch('http://127.0.0.1:5000/user-info', {
mode: 'no-cors',
method: 'GET',
}).then((resp) => {
return resp;
}).then((obj) => {
if(obj.user) {
this.status = true
}
})
},
login() {
let frmData = new FormData(document.querySelector("#frmLogin"));
fetch('http://127.0.0.1:5000/login', {
mode: 'no-cors',
method: 'POST',
body: frmData,
}).then((resp) => {
return resp;
}).then((obj) => {
this.status = obj.status
})
}
}
すべてが正常です。ページを更新するとセッションが失われます。
サーバー側のセッションは、多くの理由から重要です。私がlocalStore
か何かのようなものを使用すれば、どうやって安全にすることができるのでしょうか?
私は同様のプロジェクトを担当してくれた助けが必要です。あなたは私に提案をすることができます。私は似たようなプロジェクトをしたことがないからです私はこのトピックに読んだ
その他のもの:
- Single page application with HttpOnly cookie-based authentication and session management
- SPA best practices for authentication and session management
は、私はまだ私が何ができるかについての混乱しています。
クロスドメインでリクエストを送信していますか?セッションとクッキーはどこに送られませんか? –