Невозможно войти с помощью Kohana 3.3.0 ORM Auth
Я пытаюсь использовать модуль Auth с драйвером ORM в Kohana 3.3.0, но единственное, что я могу сделать, это вставить новых пользователей в базу данных. Я не могу войти с ними.
Я начал с пустого проекта Kohana, простого маршрута, файла конфигурации базы данных и импортировал схему аутентификации SQL, включенную в модуль ORM (без другой таблицы). Я не создал новый файл модели для пользователей.
Вот файл конфигурации, который я скопировал в каталог приложения / каталог конфигурации:
<?php defined('SYSPATH') or die('No direct access allowed.');
return array(
'driver' => 'ORM',
'hash_method' => 'sha256',
'hash_key' => 'secretkey',
'lifetime' => 1209600,
'session_type' => Session::$default,
'session_key' => 'auth_user',
'users' => array()
);
Теперь вот мой простой контроллер. Я пытаюсь загрузить пользователя в базу данных, а затем войти в систему с тем же пользователем.
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_User extends Controller {
public function action_index(){
// Enter a new user manually
$user = ORM::factory('user');
$user->username = 'mylogin';
$user->password = 'mypassword';
$user->email = 'me@email.fr';
try{
$user->save();
}
catch(ORM_Validation_Exception $e){
$errors = $e->errors();
}
if(isset($errors)){
$this->response->body(var_dump($errors));
}else{
// Login with this user
$success = Auth::instance()->login('mylogin','mypassword');
if ($success){
$this->response->body("Welcome !");
}else{
$this->response->body("Not welcome...");
}
}
}
}
Этот контроллер не может войти в систему. Но когда я проверяю свою базу данных, я вижу, что пользователь правильно сохранен с хэшем пароля. Я что-то забыл о своей конфигурации?
1 ответ
Каждый пользователь должен иметь login
роль:
...
$user->save();
$user->add('roles', ORM::factory('role')->where('name', '=', 'login')->find());