आप जानते हैं, वेब अनुप्रयोगों को प्रमाणीकरण के लिए सत्र या कुकीज़ की आवश्यकता होती है। मैं वीयू.जेएस और फ्लास्क माइक्रोफ्रेमवर्क के साथ वेब एप्लिकेशन बनाने की कोशिश कर रहा हूं उदाहरण के लिए ईआरपी या सीआरएम।वू और फ्लास्क में सत्रों के साथ कैसे काम करें?
मैं उलझन में हूं। मैं सत्रों के साथ कैसे काम कर सकता हूं? के लगता है कि हम फ्लास्क में इस तरह की एक कोड है करते हैं:
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
मैं अब भी मैं क्या कर सकता के बारे में करने के लिए संदेह में हूँ।
क्या आप क्रॉस डोमेन पर अनुरोध भेज रहे हैं? जहां सत्र और कुकीज़ नहीं भेजी जाएंगी? –