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.