Dancer::Plugin::Auth::Extensible
se za vás postará o spoustu standardního kódu. Můžete zprovoznit a spustit jednoduchý přihlašovací systém, aniž byste museli psát vlastní /login
trasy následovně.
Konfigurovat Dancer::Plugin::Auth::Extensible
Nainstalujte Dancer::Plugin::Database
a Dancer::Plugin::Auth::Extensible::Provider::Database
a přidejte to do config.yml
:
session: "YAML"
plugins:
Auth::Extensible:
realms:
users:
provider: 'Database'
disable_roles: 1
Konfigurace připojení k databázi
Nakonfigurujte připojení k databázi v environments/development.yml
takže můžete mít různé konfigurace pro vývoj a produkci. Takto vypadá konfigurace pro MySQL, přičemž přihlašovací údaje pro připojení (název databáze, hostitel, uživatelské jméno a heslo) jsou uloženy v samostatném souboru voleb database.cfg
:
plugins:
Database:
dsn: 'dbi:mysql:;mysql_read_default_file=/path/to/database.cfg'
dbi_params:
RaiseError: 1
AutoCommit: 1
Pro Postgres byste měli použít .pgpass
soubor pro uložení vašich přihlašovacích údajů pro připojení. Ujistěte se, že soubor není světově čitelný. Viz tento příspěvek Stack Overflow
pro příklad. Otestujte, zda váš soubor přihlašovacích údajů funguje na příkazovém řádku a zda jej váš webový server dokáže přečíst.
Zdá se, že vaše stávající tabulka odpovídá doporučené schéma v dokumentech, ale i když tomu tak není, můžete upravit názvy tabulek a sloupců v konfigurace .
Uzamkněte své trasy
Přidejte require_login
klíčové slovo k trase, kterou chcete chránit. A /login
trasa se vygeneruje automaticky pomocí základního přihlašovacího formuláře, i když můžete vytvořte si vlastní
pokud chcete.
lib/MyApp.pm
package MyApp;
use Dancer ':syntax';
use Dancer::Plugin::Auth::Extensible;
our $VERSION = '0.1';
get '/' => require_login sub {
template 'index';
};
true;
(Ano, to je skutečně celý kód, který musíte napsat. Řekl jsem vám, že se stará o spoustu standardních.)
Crypt::SaltedHash
se používá k automatickému hašování hesel. Pamatujte, že byste nikdy neměli ukládat hesla ve formátu prostého textu do databáze; když do databáze přidáte uživatele, měli byste vygenerovat hash hesla a uložit ho.
Všimněte si, že role jsou v tomto příkladu zakázány. Pokud povolíte role, můžete dělat další šikovné věci jako umožnit pouze uživatelům s rolí správce prohlížet stránky správce.