PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

डांसर और पोस्टग्रेज का उपयोग करते हुए एक साधारण लॉगिन/प्राधिकरण प्रणाली

Dancer::Plugin::Auth::Extensible आपके लिए बहुत सारे बॉयलरप्लेट कोड का ख्याल रखता है। आप अपना कोई भी /login . लिखे बिना एक सरल लॉगिन सिस्टम को ऊपर और चलाने के लिए प्राप्त कर सकते हैं मार्ग इस प्रकार हैं।

कॉन्फ़िगर करें डांसर::प्लगइन::Auth::Extensible

Dancer::Plugin::Database इंस्टॉल करें और Dancer::Plugin::Auth::Extensible::Provider::Database और इसे config.yml . में जोड़ें :

session: "YAML"

plugins:
  Auth::Extensible:
    realms:
      users:
        provider: 'Database'
        disable_roles: 1

डेटाबेस कनेक्शन कॉन्फ़िगर करें

अपने डेटाबेस कनेक्शन को environment/development.yml . में कॉन्फ़िगर करें ताकि आपके पास देव और उत्पादन के लिए अलग-अलग कॉन्फ़िगरेशन हो सकें। यह एक अलग विकल्प फ़ाइल database.cfg में संग्रहीत कनेक्शन क्रेडेंशियल (डेटाबेस नाम, होस्ट, उपयोगकर्ता नाम और पासवर्ड) के साथ MySQL के लिए कॉन्फ़िगरेशन जैसा दिखता है। :

plugins:
  Database:
    dsn: 'dbi:mysql:;mysql_read_default_file=/path/to/database.cfg'
    dbi_params:
      RaiseError: 1
      AutoCommit: 1

पोस्टग्रेज के लिए, आपको .pgpass अपने कनेक्शन क्रेडेंशियल्स को स्टोर करने के लिए फ़ाइल। सुनिश्चित करें कि फ़ाइल विश्व पठनीय नहीं है। देखें यह स्टैक ओवरफ़्लो पोस्ट एक उदाहरण के लिए। जांचें कि आपकी क्रेडेंशियल फ़ाइल कमांड लाइन पर काम करती है और आपका वेबसर्वर इसे पढ़ सकता है।

आपकी मौजूदा तालिका सुझाई गई स्कीमा दस्तावेज़ों में, लेकिन यदि ऐसा नहीं भी होता है, तो आप कॉन्फ़िगरेशन

अपने रास्ते बंद करें

require_loginजोड़ें उस मार्ग के लिए कीवर्ड जिसे आप सुरक्षित करना चाहते हैं। एक /लॉगिन रूट एक बुनियादी लॉगिन फ़ॉर्म के साथ स्वचालित रूप से जेनरेट हो जाएगा, हालांकि आप अपना स्वयं का बनाएं अगर आपको पसंद है।

lib/MyApp.pm

package MyApp;
use Dancer ':syntax';

use Dancer::Plugin::Auth::Extensible;

our $VERSION = '0.1';

get '/' => require_login sub {
    template 'index';
};

true;

(हां, वास्तव में यही वह कोड है जिसे आपको लिखना है। मैंने आपको बताया था कि यह बहुत सारे बॉयलरप्लेट का ख्याल रखता है।)

Crypt::SaltedHash पासवर्ड स्वचालित रूप से हैश करने के लिए उपयोग किया जाता है। ध्यान दें कि आपको अपने डेटाबेस में प्लेनटेक्स्ट पासवर्ड कभी भी स्टोर नहीं करना चाहिए; जब आप अपने डेटाबेस में एक उपयोगकर्ता जोड़ते हैं, तो आपको पासवर्ड का हैश जेनरेट करना चाहिए और हैश को स्टोर करना चाहिए।

ध्यान दें कि इस उदाहरण में भूमिकाएँ अक्षम हैं। अगर आप भूमिकाएं सक्षम करते हैं, तो आप अन्य अच्छी चीजें कर सकते हैं जैसे केवल व्यवस्थापक भूमिका वाले उपयोगकर्ताओं को व्यवस्थापक पृष्ठ देखने की अनुमति दें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पीएल/पीजीएसक्यूएल में पूर्णांक [] पर पुनरावृति

  2. कैसे जांचें कि कोई पोस्टग्रेज उपयोगकर्ता मौजूद है या नहीं?

  3. मैं STDIN से Postgresql में पंक्तियों को कैसे आयात करूं?

  4. एक हाइब्रिड वातावरण में PostgreSQL की निगरानी करना

  5. PostgreSQL में एकाधिक जॉइन के साथ अद्यतन विवरण