[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с авторизацией в Kohana 3.2 на localhost
Jack_White
Всем привет, вот разбираю kohana 3.2 и тут проблема с авторизацией, прочитал уже много статей но большинство из них по kohana 3.1. как только не пробовал, заметил что не происходит занесение в таблицу user_tokens. Мне кажется, что проблема с куками на локальном пк, может кто-нибудь сталкивался с этим?

public function action_login()
{
// Проверяем вошел ли пользователь
if ($this->_auth->logged_in('login'))
$this->request->redirect('');

if ( ! empty($_POST['subbtnenter']))
{
$data = Arr::extract($_POST, array('email', 'password', 'remember_me'));
$status = $this->_auth->login($data['email'], $data['password'], (bool) $data['remember_me']);

if ($status)
{
if ($this->_auth->login_in('admin'))
$this->request->redirect('admin');

$this->request->redirect('account');
}
else
{
die('Не вошел');
}
}
}


public function action_register()
{
// Проверяем вошел ли пользователь
if ($this->_auth->logged_in('login'))
$this->request->redirect('');

if (isset($_POST['subbtnreg']))
{
$users = ORM::factory('user');

try
{
$users->create_user($_POST, array('email', 'password'))
->
add('roles', ORM::factory('role', array('name' => 'login')));

$this->action_login();
$this->request->redirect('');
}
catch (ORM_Validation_Exception $e)
{
die('Неудача');
}
}




Спустя 10 минут, 14 секунд (4.04.2012 - 21:52) Invis1ble написал(а):
токены должны записываться только при автологине (Remember me = true)
Цитата
проблема с авторизацией

собственно, не понятно, что за проблема



Спустя 12 минут, 26 секунд Invis1ble написал(а):
возможно, проблема в мускуле
попробуй добавить в модель
class Model_User_Token extends ORM {

// mysql fix
protected $_created_column = array('column' => 'created', 'format' => 'Y-m-d H:i:s');

// ....
}

Спустя 24 минуты, 30 секунд (4.04.2012 - 22:17) Jack_White написал(а):
Цитата (Invis1ble @ 4.04.2012 - 18:52)
токены должны записываться только при автологине (Remember me = true)
да, и там тру.

Цитата (Invis1ble @ 4.04.2012 - 19:05)
возможно, проблема в мускуле
попробуй добавить в модель

ок попробую, спасибо за совет



Спустя 2 минуты, 49 секунд Jack_White написал(а):
Цитата (Invis1ble @ 4.04.2012 - 18:52)
собственно, не понятно, что за проблема

ну регистрация проходит успешно, а потом когда пытаюсь зайти метод login() возвращает ! true

Спустя 4 минуты, 58 секунд (4.04.2012 - 22:22) Invis1ble написал(а):
В $this->_auth что? Инстанс?
$this->_auth->login_in('admin') - что за метод? Код в студию.

Спустя 6 минут, 16 секунд (4.04.2012 - 22:28) Jack_White написал(а):
Invis1ble
да, в базовом шаблоне в методе before();
$this->_auth = Auth::instance();

Спустя 4 минуты, 46 секунд (4.04.2012 - 22:33) Invis1ble написал(а):
а, login() false возвращает... Ну отдебаж пошагово его



Спустя 2 минуты, 33 секунды Invis1ble написал(а):
у меня была проблема, исключение выбрасывалось на уровне ORM при remeber == true, изза косяка с полем created (особо не вникал в причину, но я так понял изза версии мускула. решилось явным описанием поля в модели)

Спустя 12 минут, 18 секунд (4.04.2012 - 22:45) Jack_White написал(а):
Invis1ble ты имеешь ввиду создать модель для токена и вставить туда одну строчку
protected $_created_column = array('column' => 'created', 'format' => 'Y-m-d H:i:s'); 
или что?

Спустя 2 минуты, 35 секунд (4.04.2012 - 22:48) Invis1ble написал(а):
да, попробуй
хотя если у тебя просто false возвращает, а не исключение кидает - то наверное не поможет, но ты попробуй, может исключение внутри где ловится



Спустя 1 минута, 59 секунд Invis1ble написал(а):
хотя нет, не просто одну строчку
если ты следуешь концепции коханы - то тебе нужно скопировать полностью код модели из модуля в уровень application и там добавить эту строку
ну или можешь добавить ее в код модели в модуле (но это не труЪ)

Спустя 8 минут, 52 секунды (4.04.2012 - 22:56) Jack_White написал(а):
Invis1ble
я запутался немного, в modules-orm-user-token.php
<?php defined('SYSPATH') or die('No direct access allowed.');

class Model_User_Token extends Model_Auth_User_Token {

// This class can be replaced or extended

} // End User Token Model

мне наследовать от Model_User_Token?

Спустя 3 минуты, 35 секунд (4.04.2012 - 23:00) Invis1ble написал(а):
это я затупил
короче попробуй просто в этот код эту строку добавить, если поможет - скопируешь потом код в APPPATH.'classes/model'

Спустя 5 минут, 56 секунд (4.04.2012 - 23:06) Jack_White написал(а):
ok, спасибо, сегодня уже не успею, завтра попробую отпишусь, а то уже несколько дней с этой проблемой сижу и все никак

Спустя 4 минуты, 28 секунд (4.04.2012 - 23:10) Jack_White написал(а):
Кстати многие писали что у них были подобные проблемы, но при переносе на хостинг они исчезли

Спустя 11 часов, 7 минут, 17 секунд (5.04.2012 - 10:18) Jack_White написал(а):
Не, не помогло(

Спустя 27 минут, 9 секунд (5.04.2012 - 10:45) Invis1ble написал(а):
ну тогда хз, ковыряй код

Спустя 9 минут, 55 секунд (5.04.2012 - 10:55) Jack_White написал(а):
а есть какие-нибудь источники по созданию авторизации на Kohana 3.2?
я ничего не нашел, все по старой версии 3.1

Спустя 1 минута, 5 секунд (5.04.2012 - 10:56) Invis1ble написал(а):
я не встречал, но и не искал на эту тему, ибо все элементарно

Спустя 4 минуты, 12 секунд (5.04.2012 - 11:00) Jack_White написал(а):
ладно буду дальше разбираться, спасибо)

Спустя 12 часов, 46 минут, 9 секунд (5.04.2012 - 23:46) Jack_White написал(а):
Разобрался, но теперь новая проблема:

Database_Exception [ 1364 ]: Field 'type' doesn't have a default value [ INSERT INTO `user_tokens` (`user_id`, `user_agent`, `expires`, `token`) VALUES ('1', '311ff8eeee79cffcb30e2ad5fc418ef1b67272f3', 1334867721, '9dc0941a3cdbc929875f6c573e8c26baa2403415') ]

появляется когда указываю "запомнить меня" - Auth::instance()->login($username, $password, true)
необходимо указать какой-то параметр который заносится в поле type, таблицы user_tokens что-то связанное с куки или сессией?

Спустя 10 часов, 43 минуты, 45 секунд (6.04.2012 - 10:30) Invis1ble написал(а):
я вообще не знаю для чего это поле, в исходниках не нашел упоминаний о нем
сделай его NULL DEFAULT NULL

Спустя 1 час, 18 минут, 7 секунд (6.04.2012 - 11:48) Jack_White написал(а):
Invis1ble
ок, если ничего не найду сделаю так, спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.