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
データベース接続の構成
environment / 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
>
接続資格情報を保存するファイル。ファイルが誰でも読み取れないことを確認してください。 このStackOverflowの投稿
をご覧ください 例として。クレデンシャルファイルがコマンドラインで機能し、Webサーバーがそれを読み取れることをテストします。
既存のテーブルは、推奨スキーマ ドキュメントにありますが、そうでない場合でも、構成 。
ルートをロックダウン
require_login
を追加します 保護したいルートへのキーワード。 / 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
パスワードを自動的にハッシュするために使用されます。プレーンテキストのパスワードをデータベースに保存しないでください。データベースにユーザーを追加するときは、パスワードのハッシュを生成して保存する必要があります。
この例では、役割が無効になっていることに注意してください。ロールを有効にすると、その他の気の利いたことを行うことができます> たとえば、管理者の役割を持つユーザーにのみ管理者ページの表示を許可します。