sql >> Databáze >  >> RDS >> PostgreSQL

Jednoduchý přihlašovací/autorizační systém využívající Dancer a Postgres

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.



  1. Alternativa sys_refcursor

  2. Sloučit výsledky tabulky do sloupců (kontingenční/kontingenční?)

  3. Upgrade z PostGIS 2.1:Chyba:pokus o předefinování parametru postgis.backend

  4. Postgres Tipy A Triky