Faça login com o módulo de autenticação Kohana - o que estou fazendo de errado?
-
27-09-2019 - |
Pergunta
Estou tentando fazer login com a seguinte ação do controlador, mas minha tentativa de login continua falhando (recebo a mensagem 'Nome de usuário inválido e/ou senha'). O que estou fazendo errado? Eu também tentei o outro método fornecido nos exemplos no Documentação de autenticação, Auth::instance()->login($user->username, $form->password);
, mas eu recebo o mesmo resultado. A versão Kohana é 2.3.4.
public function login() {
$auth = Auth::instance();
if ($auth->logged_in()) {
url::redirect('/account/summary');
}
$view = new View('login');
$view->username = '';
$view->password = '';
$post = $this->input->post();
$form = new Validation($post);
$form->pre_filter('trim', 'username')
->pre_filter('trim', 'password')
->add_rules('username', 'required');
$failed = false;
if (!empty($post) && $form->validate()) {
$login = array(
'username' => $form->username,
'password' => $form->password,
);
if (ORM::factory('user')->login($login)) {
url::redirect('/accounts/summary');
} else {
$view->username = $form->username;
$view->message = in_array('required', $form->errors()) ?
'Username and password are required.' :
'Invalid username and/or password.';
}
}
$view->render(true);
}
Solução
Descobri o meu problema ... algo no meu processo de registro está faltando, porque está criando o registro do usuário, mas não o registro Assoc função para o usuário. O login precisa de uma função específica para fazer login, ou não funcionará mesmo com um nome de usuário e senha válidos. Inserir manualmente o registro permitiu que eu faça login, então vou ter que depurar um pouco minha ação de registro.