PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Một hệ thống Đăng nhập / Cấp quyền Đơn giản sử dụng Dancer và Postgres

Dancer ::Plugin ::Auth ::Extensible chăm sóc rất nhiều mã soạn sẵn cho bạn. Bạn có thể thiết lập và chạy một hệ thống đăng nhập đơn giản mà không cần phải viết bất kỳ / login nào của riêng bạn các tuyến đường như sau.

Định cấu hình Dancer ::Plugin ::Auth ::Extensible

Cài đặt Dancer ::Plugin ::Cơ sở dữ liệu Dancer ::Plugin ::Xác thực ::Có thể mở rộng ::Nhà cung cấp ::Cơ sở dữ liệu và thêm cái này vào config.yml :

Các plugin
session: "YAML"

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

Định cấu hình kết nối cơ sở dữ liệu

Định cấu hình kết nối cơ sở dữ liệu của bạn trong environment / development.yml để bạn có thể có các cấu hình khác nhau cho nhà phát triển và sản xuất. Đây là cấu hình trông như thế nào cho MySQL, với thông tin xác thực kết nối (tên cơ sở dữ liệu, máy chủ, tên người dùng và mật khẩu) được lưu trữ trong một tệp tùy chọn riêng biệt database.cfg :

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

Đối với Postgres, bạn nên sử dụng mã .pgpass tệp để lưu trữ thông tin đăng nhập kết nối của bạn. Đảm bảo rằng tệp không thể đọc được trên toàn thế giới. Xem bài đăng Stack Overflow này Ví dụ. Kiểm tra xem tệp thông tin xác thực của bạn có hoạt động trên dòng lệnh và máy chủ web của bạn có thể đọc được tệp đó không.

Bảng hiện có của bạn dường như tuân theo lược đồ được đề xuất trong tài liệu, nhưng ngay cả khi không, bạn có thể điều chỉnh tên bảng và cột trong cấu hình .

Khóa các tuyến đường của bạn

Thêm request_login từ khóa đến một tuyến đường bạn muốn bảo vệ. A / login tuyến đường sẽ được tạo tự động với biểu mẫu đăng nhập cơ bản, mặc dù bạn có thể tạo của riêng bạn nếu bạn thích.

lib / MyApp.pm

package MyApp;
use Dancer ':syntax';

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

our $VERSION = '0.1';

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

true;

(Vâng, đó thực sự là tất cả mã bạn phải viết. Tôi đã nói với bạn rằng nó cần rất nhiều bản soạn sẵn.)

Crypt ::SaltedHash được sử dụng để băm mật khẩu tự động. Lưu ý rằng bạn không bao giờ được lưu trữ mật khẩu văn bản rõ trong cơ sở dữ liệu của mình; khi bạn thêm người dùng vào cơ sở dữ liệu của mình, bạn nên tạo một mã băm của mật khẩu và lưu trữ hàm băm.

Lưu ý rằng các vai trò bị vô hiệu hóa trong ví dụ này. Nếu bạn bật vai trò, bạn có thể làm những việc tiện lợi khác như chỉ cho phép người dùng có vai trò quản trị viên xem các trang quản trị viên.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres cách triển khai cột được tính toán với mệnh đề

  2. Giá trị cột PostgreSQL phải nằm trong một chuỗi

  3. Định cấu hình Amazon Elastic Beanstalk với PostGIS

  4. Tìm nguồn truy vấn thông qua pgbouncer

  5. Lỗi khi nhập CSV vào postgres với python và psycopg2