PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Проста система за влизане/упълномощаване, използваща Dancer и Postgres

Dancer::Plugin::Auth::Extensible се грижи за много шаблонен код вместо вас. Можете да стартирате проста система за влизане, без да се налага да пишете свой собствен /login маршрути, както следва.

Конфигурирайте Dancer::Plugin::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

Конфигуриране на връзка с база данни

Конфигурирайте връзката си с база данни в environments/development.yml така че да можете да имате различни конфигурации за разработка и производство. Ето как изглежда конфигурацията за MySQL, като идентификационните данни за връзка (име на база данни, хост, потребителско име и парола) се съхраняват в отделен файл с опции database.cfg :

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

За Postgres трябва да използвате .pgpass файл за съхраняване на вашите идентификационни данни за връзка. Уверете се, че файлът не може да се чете от света. Вижте тази публикация на Stack Overflow за пример. Тествайте дали вашият файл с идентификационни данни работи на командния ред и дали вашият уеб сървър може да го прочете.

Вашата съществуваща таблица изглежда съответства на предложена схема в документите, но дори и да не стане, можете да коригирате имената на таблиците и колоните в конфигурация .

Заключете маршрутите си

Добавете require_login ключова дума към маршрут, който искате да защитите. A /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. psql ГРЕШКА:не може да се отвори файл адрес.csv за четене:Няма такъв файл или директория

  2. Как да завъртите регистрационните файлове на PgBouncer в Linux/Windows?

  3. Ръководство за Pgpool за PostgreSQL:Част втора

  4. Postgres:Как да направя композитни ключове?

  5. Как мога да задам началната точка за колоната с първичен ключ (ID) в Postgres чрез миграция на релси