Dancer::Plugin::Auth::Extensible
cuida de muito código clichê para você. Você pode colocar um sistema de login simples em funcionamento sem ter que escrever nenhum de seus próprios /login rotas como segue. Configurar Dancer::Plugin::Auth::Extensible
Instale o
Dancer::Plugin::Database
e Dancer::Plugin::Auth::Extensible::Provider::Database
e adicione isso a config.yml :session: "YAML"
plugins:
Auth::Extensible:
realms:
users:
provider: 'Database'
disable_roles: 1
Configurar conexão de banco de dados
Configure sua conexão de banco de dados em
environments/development.yml para que você possa ter configurações diferentes para desenvolvimento e produção. É assim que a configuração se parece com o MySQL, com as credenciais de conexão (nome do banco de dados, host, nome de usuário e senha) armazenadas em um arquivo de opções separado database.cfg :plugins:
Database:
dsn: 'dbi:mysql:;mysql_read_default_file=/path/to/database.cfg'
dbi_params:
RaiseError: 1
AutoCommit: 1
Para Postgres, você deve usar um
.pgpass
arquivo para armazenar suas credenciais de conexão. Certifique-se de que o arquivo não seja legível pelo mundo. Veja esta postagem do Stack Overflow
Por exemplo. Teste se o arquivo de credenciais funciona na linha de comando e se o servidor da Web pode lê-lo. Sua tabela existente parece estar em conformidade com o esquema sugerido nos documentos, mas mesmo que isso não aconteça, você pode ajustar os nomes das tabelas e colunas no configuração .
Bloqueie suas rotas
Adicione o
require_login palavra-chave para uma rota que você deseja proteger. Um /login rota será gerada automaticamente com um formulário de login básico, embora você possa crie o seu próprio
se você gostar. lib/MyApp.pm
package MyApp;
use Dancer ':syntax';
use Dancer::Plugin::Auth::Extensible;
our $VERSION = '0.1';
get '/' => require_login sub {
template 'index';
};
true;
(Sim, esse é realmente todo o código que você precisa escrever. Eu lhe disse que trata de muito clichê.)
Crypt::SaltedHash
é usado para hash de senhas automaticamente. Observe que você nunca deve armazenar senhas de texto simples em seu banco de dados; quando você adiciona um usuário ao seu banco de dados, você deve gerar um hash da senha e armazenar o hash. Observe que as funções estão desabilitadas neste exemplo. Se você habilitar funções, poderá fazer outras coisas interessantes como permitir que apenas usuários com a função de administrador visualizem as páginas de administração.