


Basic Authentication एक बहुत ही सरल और सीधा-सादा Authentication method है। क्लाइंट HTTP requests भेजता है जिसमें Authorization header होता है जो आपके Drupal साइट का base64-encoded यूज़रनेम और पासवर्ड शामिल करता है।


API कुंजी प्रमाणीकरण Drupal REST APIs को सुरक्षित करने के सबसे सरल तरीकों में से एक है। एक बार जब आप अपने सभी उपयोगकर्ताओं के लिए API कुंजियाँ उत्पन्न कर लेते हैं, तो आप इन कुंजियों का उपयोग अपनी Drupal REST APIs तक सुरक्षित पहुँच के लिए कर सकते हैं।


OAuth (ओपन ऑथराइजेशन) एक ओपन स्टैण्डर्ड है जो टोकन-आधारित प्रमाणीकरण और प्राधिकरण प्रोटोकॉल के लिए उपयोग होता है, जिसका इस्तेमाल सिंगल साइन-ऑन (SSO) प्रदान करने के लिए किया जा सकता है। OAuth किसी अंतिम उपयोगकर्ता के अकाउंट की विशेष जानकारी को थर्ड-पार्टी सेवाओं, जैसे Facebook आदि, द्वारा उपयोग करने की अनुमति देता है बिना उपयोगकर्ता का पासवर्ड उजागर किए। यह अंतिम उपयोगकर्ता की ओर से एक मध्यस्थ के रूप में कार्य करता है और सेवा को एक एक्सेस टोकन प्रदान करता है जो विशेष अकाउंट जानकारी साझा करने को अधिकृत करता है।


उदाहरण:
-
सबसे पहले, हमें JWT प्राप्त करने के लिए एक API कॉल करनी होगी। फिर हम Drupal API को प्रमाणीकरण के लिए उस टोकन का उपयोग करेंगे ताकि एक बेसिक पेज बनाया जा सके।
-
हम POST अनुरोध करके JWT प्राप्त कर सकते हैं जिसमें उपयोगकर्ता का Drupal उपयोगकर्ता नाम और पासवर्ड होगा। उपयोगकर्ता नाम और पासवर्ड को base64-encoded प्रारूप में भेजना आवश्यक है। आप संदर्भ के लिए नीचे दिए गए अनुरोध प्रारूप को देख सकते हैं।
अनुरोध: POST <your_drupal_base_url>/rest_api/id_token


यदि आप अपने Drupal REST APIs तक पहुँच को अपने पहचान प्रदाता (Identity Provider) के माध्यम से सुरक्षित या सीमित करना चाहते हैं, तो आपको External Identity Provider Authentication विधि का उपयोग करना चाहिए।
Drupal API Authentication को एक बाहरी पहचान प्रदाता (जैसे Google, Azure AD, Keycloak, Okta, GitLab आदि) के साथ एकीकृत करके टोकन के माध्यम से सुरक्षित किया जाता है। ये टोकन REST APIs तक सुरक्षित पहुँच प्रदान करते हैं।


JSON:API के साथ CRUD ऑपरेशनों के लिए प्रमाणीकरण
जब आप JSON:API के साथ इंटरैक्ट करते हैं, तो Postman या cURL जैसे टूल का उपयोग अनुरोध भेजने के लिए किया जा सकता है। डिफ़ॉल्ट रूप से, इन टूल्स के माध्यम से किए गए अनुरोधों को "anonymous" उपयोगकर्ता से आया हुआ माना जाता है, क्योंकि ये प्रमाणीकरण को स्वयं नहीं संभालते। इसके परिणामस्वरूप, Drupal साइट पर "anonymous" उपयोगकर्ताओं के लिए कॉन्फ़िगर की गई अनुमतियों के आधार पर कुछ संसाधनों तक पहुँच प्रतिबंधित हो सकती है।


अक्सर हम 500 त्रुटि पृष्ठ का सामना करते हैं जब Drupal, उसकी सेवाएं, या कोई अन्य साइट उपलब्ध नहीं होती है। जब हम 500 (या 501–504) त्रुटि पृष्ठ देखते हैं, तो Drupal Exceptions का उपयोग यह जांचने के लिए करता है कि कोई महत्वपूर्ण कोड निष्पादित हुआ या नहीं। यदि कोई त्रुटि आती है, उदाहरण के लिए किसी अन्य साइट को HTTP अनुरोध भेजते समय, तो Drupal यह त्रुटि संदेश दिखाता है: "The website encountered an unexpected error. Please try again later":


कभी-कभी साइट पर कुछ निश्चित, स्थायी श्रेणियाँ (Categories) होनी चाहिए जिन्हें अनजाने में अपडेट नहीं किया जाना चाहिए। इस स्थिति में आप Event Subscriber के साथ कस्टम कोड का उपयोग कर सकते हैं।
आइए एक नया Event Subscriber क्लास अपने कस्टम मॉड्यूल में जोड़ें।
drupalbook_custom.services.yml


PHP 8 ने constructor property promotion पेश किया, जो एक ऐसी सुविधा है जो क्लास प्रॉपर्टी की परिभाषा और असाइनमेंट को सरल बनाती है। यह आपको constructor सिग्नेचर में ही प्रॉपर्टीज़ को घोषित करने और इनिशियलाइज़ करने की अनुमति देती है। यह ट्यूटोरियल Drupal कस्टम मॉड्यूल्स (जो PHP 8.0+ की आवश्यकता रखते हैं) में constructor property promotion का उपयोग कैसे करें, यह दिखाता है, विशेष रूप से आपके सर्विसेज़ और कंट्रोलर्स में dependency injection को सरल बनाने के लिए। हम पारंपरिक Drupal पैटर्न (जो PHP 7 और प्रारंभिक Drupal 9 में उपयोग होता था) की तुलना आधुनिक PHP 8+ तरीके से कर
