Kohana Вопрос по Kohana::Auth

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
В общем вопрос такой. Решил попробовать что-то кроме шустрых самописных велосипедов. Выпор пал на кохану.

Собственно вопрос такой, решил я сделать простейшую авторизацию юзера по паре логин/пароль. Ну в общем случае начал с того, с чего обычно все начинают, открыл мануал, с десяток статей, начал писать.

Собственно, сразу вылезли вопросы:

1. Хочу юзать PDO драйвер для работы с БД, сконфигурил его:

PHP:
return array
(
	'default' =>
	[
		'type'          => 'pdo',
		'connection'    => [
			'dsn'        => 'mysql:dbname=kohana;host=127.0.0.1',
			'hostname'   => 'localhost',
			'username'   => 'root',
			'password'   => 'password',
			'persistent' => FALSE,
		],
		'table_prefix'  => '',
		'charset'       => 'utf8',
		'caching'       => FALSE,
		'object'        => true,
		'profiling'     => TRUE,
	],
);
Тут же вылетает замечательная ошибка "Database method list_columns is not supported by Kohana_Database_PDO". Вопрос, как сие понимать, драйвер у нас для работы с PDO есть, а Auth на него пересадить не осилили?

2. Ладно, плюнул, погуглив перед этим. Сделал конфиг базы на основе mysql экстеншена. Далее через мануал создал в родной раскладке базы данных, которая идет в комплекте с движком, нового юзера, через:

PHP:
try {
	$post['username'] = 'login';
	$post['username']    = '[email protected]';
	$post['password'] = 'password';
	$post['password_confirm'] = 'password';
	ORM::factory('user')->create_user($post, array('username', 'username', 'password'));
} catch (ORM_Validation_Exception $e) {
	$errors = $e->errors('orm-validation', true);
	print_r($errors);
}
Юзер вроде как в базу упал, дальше пробую залогиниться под ним:

PHP:
$r = Auth::instance()->login("login", "password");
print_r($r);

if (Auth::instance()->logged_in()) {
	print_r(Auth::instance()->get_user());
	echo 'Авторизация прошла успешно';
} else {
	echo 'Ошибка при авторизации';
}
Уже блин рога все об гугл стер, потому как не могу понять что фреймворку не хватает, не авторизуется мой юзер и все. Может есть пара статей каких по нормальной реализации этого механизма? Ткните плиз носом.

PS: Я могу написать все ручками, без Kohana::Auth, но хочется попробовать написать все именно через нативный модуль фреймворка.
 

fixxxer

К.О.
Партнер клуба
Лично я в таких случаях беру и нагло расставляю var_dump-ы в коде фреймворка. ;)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Это понятно, просто дебажить сам фреймворк не жирно ли?)

PS: версия движка у меня 3.2.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
config/auth.php - настроил-то?
Т.к. он по умолчанию про базу ничего не знает :)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Сделал таким:

PHP:
return array(
	'driver'       => 'orm',
	'hash_method'  => 'sha256',
	'hash_key'     => 1234567890,
	'lifetime'     => 1209600,
	'session_type' => Session::$default,
	'session_key'  => 'auth_user',
);
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Тут же вылетает замечательная ошибка "Database method list_columns is not supported by Kohana_Database_PDO". Вопрос, как сие понимать, драйвер у нас для работы с PDO есть, а Auth на него пересадить не осилили?
не Auth, a ORM. ORM-у нужен список полей таблицы, через PDO его получить нельзя.
Ты можешь либо у каждой модели описать $_table_columns со списком колонок, или перекрыть метод ->list_columns() у ORM, реализовав какой-нибудь способ получения списка столбцов (из information schema, например)
Как-то так.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
флоппик
Я забил на PDO, я написал, что дописывать что-то мне было лень и потому я переписал конфиг на mysql экстеншн. Про перекрывание метода я читал.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Алсо, пользователя ты создал, а ты ему роль с логином навесил? Она в методе ->login() проверяется :)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
флоппик
Хыхы, ща проверю...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я привык флажок ставить просто is_blocked с типом ENUM[Y:N] в таблице юзеров. Но это самописный движок у нас.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
до сих пор курю доки по ней... Решил попробовать написать модуль для к3, с своей авторизацией, вроде пока ковыряю потихоньку)
 
Сверху