PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Prosty system logowania/autoryzacji za pomocą Dancer i Postgres

Dancer::Plugin::Auth::Extensible zajmuje się za Ciebie dużą ilością kodu wzorcowego. Możesz uruchomić prosty system logowania bez konieczności pisania własnego /login trasy w następujący sposób.

Konfiguruj Dancer::Plugin::Auth::Extensible

Zainstaluj Dancer::Plugin::Database i Dancer::Plugin::Auth::Extensible::Provider::Database i dodaj to do config.yml :

session: "YAML"

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

Konfiguruj połączenie z bazą danych

Skonfiguruj połączenie z bazą danych w environments/development.yml dzięki czemu możesz mieć różne konfiguracje dla deweloperów i produkcji. Tak wygląda konfiguracja dla MySQL, z danymi uwierzytelniającymi połączenie (nazwa bazy danych, host, nazwa użytkownika i hasło) przechowywanymi w oddzielnym pliku opcji database.cfg :

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

W przypadku Postgresa użyj .pgpass plik do przechowywania poświadczeń połączenia. Upewnij się, że plik nie jest czytelny dla całego świata. Zobacz ten post dotyczący przepełnienia stosu dla przykładu. Sprawdź, czy plik z danymi uwierzytelniającymi działa w wierszu poleceń i czy Twój serwer WWW może go odczytać.

Twoja istniejąca tabela wydaje się być zgodna z sugerowany schemat w dokumentacji, ale nawet jeśli nie, możesz dostosować nazwy tabel i kolumn w konfiguracja .

Zablokuj swoje trasy

Dodaj require_login słowo kluczowe do trasy, którą chcesz chronić. /login trasa zostanie wygenerowana automatycznie za pomocą podstawowego formularza logowania, chociaż możesz utwórz własne jeśli chcesz.

lib/MojaAplikacja.po południu

package MyApp;
use Dancer ':syntax';

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

our $VERSION = '0.1';

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

true;

(Tak, to naprawdę jest cały kod, który musisz napisać. Mówiłem ci, że zajmuje się dużo szablonowym.)

Crypt::SaltedHash służy do automatycznego haszowania haseł. Pamiętaj, że nigdy nie powinieneś przechowywać haseł w postaci zwykłego tekstu w swojej bazie danych; kiedy dodajesz użytkownika do swojej bazy danych, powinieneś wygenerować skrót hasła i zapisać ten skrót.

Zauważ, że w tym przykładzie role są wyłączone. Jeśli włączysz role, możesz robić inne fajne rzeczy na przykład zezwalaj tylko użytkownikom z rolą administratora na przeglądanie stron administracyjnych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabela ze współrzędnymi siatki heksagonalnej, która obejmuje świat

  2. czy pg_restore nadpisze istniejące tabele?

  3. przekonwertować typ danych MySQL SET na Postgres

  4. Postgres nie może otworzyć pliku CSV w celu odczytu:odmowa uprawnień

  5. Skumulowana suma wartości według miesiąca, uzupełnianie brakujących miesięcy