login मुझे लॉगिन(प्रमाणीकरण) अनुरोध के लिए किस विधि का उपयोग करना चाहिए?




logout http-method (4)

यदि आपका लॉगिन अनुरोध उपयोगकर्ता नाम और पासवर्ड की आपूर्ति करने वाले उपयोगकर्ता के माध्यम से है, तो एक POST बेहतर है, क्योंकि विवरण URL के बजाय HTTP संदेश निकाय में भेजे जाएंगे। हालाँकि यह तब भी सादा पाठ भेजा जाएगा, जब तक कि आप https के माध्यम से एन्क्रिप्ट नहीं कर रहे हैं।

HTTP DELETE विधि सर्वर पर कुछ हटाने के लिए एक अनुरोध है। मुझे नहीं लगता कि स्मृति उपयोगकर्ता सत्र में DELETING वास्तव में वही है जो इसका उद्देश्य है; अधिक यह उपयोगकर्ता रिकॉर्ड को हटाने के लिए ही है। तो संभावित लॉगआउट सिर्फ एक GET हो सकता है जैसे www.yoursite.com/logout।

मैं जानना चाहूंगा कि लॉगिन अनुरोध करते समय मुझे कौन सी http विधि का उपयोग करना चाहिए, और क्यों? चूंकि यह अनुरोध सर्वर पर एक ऑब्जेक्ट (एक उपयोगकर्ता सत्र) बनाता है, मुझे लगता है कि यह POST होना चाहिए, आपको क्या लगता है? लेकिन चूँकि लॉगिन अनुरोध निष्प्रभावी होना चाहिए, इसलिए यह PUT हो सकता है, नहीं?

लॉगआउट अनुरोध के लिए समान प्रश्न, क्या मुझे DELETE पद्धति का उपयोग करना चाहिए?


लॉगिन अनुरोध के लिए हमें POST विधि का उपयोग करना चाहिए। क्योंकि हमारा लॉगिन डेटा सुरक्षित है जिसे सुरक्षा की आवश्यकता है। जब POST विधि का उपयोग करते हैं तो डेटा एक बंडल में सर्वर को भेजा जाता है। लेकिन GET मेथड का डेटा सर्वर को भेजा जाता है और उसके बाद url जैसे url request के साथ append किया जाता है जो सभी को दिखाई देगा।

अतः सुरक्षित प्रमाणीकरण और प्राधिकरण प्रक्रिया के लिए हमें POST विधि का उपयोग करना चाहिए।

मुझे उम्मीद है कि यह समाधान आपकी मदद करेगा।

धन्यवाद


मेरा मानना ​​है कि आप लॉग इन कर सकते हैं और लॉग इन कर सकते हैं और बुनियादी सीआरयूडी संचालन और निर्माण में विधियों का उपयोग कर सकते हैं। चूंकि आप सत्र नाम से एक नया संसाधन बना रहे हैं और लॉग आउट करते समय इसे नष्ट कर रहे हैं:

  1. पोस्ट / लॉगिन - सत्र बनाता है
  2. DELETE / लॉगआउट - सत्र को नष्ट कर देता है

मैं कभी भी जीईटी के रूप में लॉग इन नहीं करूंगा क्योंकि कोई भी केवल आईएमजी टैग के साथ एक ईमेल भेजकर या वेबसाइट पर लिंक भेजकर हमला कर सकता है जहां इस तरह का आईएमजी टैग मौजूद है। ( <img src="youtsite.com/logout" /> )

PS लंबे समय से मैं सोच रहा था कि आप एक RESTful लॉगिन / लॉगआउट कैसे बनाएंगे और यह पता चला कि यह वास्तव में सरल है, आप इसे वैसे ही करते हैं जैसे मैंने वर्णित किया: क्री / डेलिकेट विधियों के साथ उपयोग / सत्र / समापन बिंदु और आप ठीक हैं। यदि आप सत्र को एक या दूसरे तरीके से अपडेट करना चाहते हैं तो आप UPDATE का उपयोग कर सकते हैं ...


यहाँ यह मेरा समाधान है जो REST गाइड और सिफारिशों पर आधारित है:

लॉगिन - एक संसाधन बनाएँ

निवेदन:

POST => https://example.com/sessions/

BODY => {'login': '[email protected]', 'password': '123456'}

उत्तर:

http status code 201

{'token': '761b69db-ace4-49cd-84cb-4550be231e8f'}

लॉग इन करें - एक संसाधन हटाएं

निवेदन:

DELETE => https://example.com/sessions/761b69db-ace4-49cd-84cb-4550be231e8f/

उत्तर:

http status code 200