मैं उपयोगकर्ताओं को एक अलग वेब सेवा से अपने खातों का उपयोग करके अपने फ्लास्क ऐप में लॉगिन करने की अनुमति देने की कोशिश कर रहा हूं। मैं इस वेब सेवा के एपीआई से संपर्क कर सकता हूं और एक सुरक्षा टोकन प्राप्त कर सकता हूं। उपयोगकर्ताओं को प्रमाणीकृत करने के लिए मैं इस टोकन का उपयोग कैसे करूं ताकि उनके पास प्रतिबंधित दृश्यों तक पहुंच हो?आप फ्लास्क में टोकन प्रमाणीकरण कैसे कार्यान्वित करते हैं?
मुझे उपयोगकर्ताओं को अपने डेटाबेस में सहेजने की आवश्यकता नहीं है। मैं केवल उन्हें एक सत्र के लिए प्रमाणित करना चाहता हूं। मेरा मानना है कि यह फ्लास्क-सिक्योरिटी और @Auth_token_required सजावट का उपयोग करके किया जा सकता है लेकिन दस्तावेज़ीकरण बहुत विस्तृत नहीं है और मुझे यकीन नहीं है कि इसे कैसे कार्यान्वित किया जाए।
संपादित करें:
@main.route("/login", methods=["GET", "POST"])
def login():
payload = {"User": "john", "Password": "password123"}
url = "http://webserviceexample/api/login"
headers = {'content-type': 'application/json'})
#login to web service
r = requests.post(url, headers=headers, json=payload)
response = r.json()
if (r.status_code is 200):
token = response['user']['authentication_token']
# allow user into protected view
return render_template("login.html", form=form)
@main.route('/protected')
@auth_token_required
def protected():
return render_template('protected.html')
आपको उपयोगकर्ताओं को टोकन के साथ स्टोर करने की आवश्यकता है; और सेवा के खिलाफ टोकन की वैधता की पुष्टि करें। अन्यथा जब भी वे शुरू करते हैं तो आपको तृतीय पक्ष सेवा के खिलाफ हर बार आगंतुकों को प्रमाणीकृत करना होगा। –
हर बार जब आप प्रत्येक सत्र के लिए मतलब करते हैं? यदि ऐसा है, तो यह ठीक है कि उन्हें फिर से प्रमाणीकरण करना होगा। क्या कोई कारण यह एक मुद्दा होगा? – Amerikaner