Коллеги!
Не сплю вторую ночь.
Подключил модули facebook и google oath к Kohana.
По началу все работало и я не заметил когда все сломалось.
Может быть кто-то сталкивался с подобным?
facebook и google в процессе аутентификации, создают свою сессию.
Здесь и происходит конфликт.
Когда я первый раз с этим столкнулся, то помогло создание собственного конфига сессий:
<?php defined('SYSPATH') OR die('No direct script access.');
return array(
'native' => array(
'name' => sha1(URL::base()),
'lifetime' => 43200,
'encrypted' => FALSE,
),
'cookie' => array(
'name' => 'cookie_name',
'encrypted' => TRUE,
'lifetime' => 43200,
),
'database' => array(
'name' => 'cookie_name',
'encrypted' => TRUE,
'lifetime' => 43200,
'group' => 'default',
'table' => 'table_name',
'columns' => array(
'session_id' => 'session_id',
'last_active' => 'last_active',
'contents' => 'contents'
),
'gc' => 500,
),
);
Но при дальнейшей разработке инцидент повторился и уже ничто не может помочь.
BOM-вычистил из всех файлов, а их более 600-сот.
Сообщение об ошибке:
Session_Exception [ 1 ]: Error reading session data.
SYSPATH\classes\Kohana\Session.php [ 324 ]
319 }
320 }
321 catch (Exception $e)
322 {
323 // Error reading the session, usually a corrupt session.
324 throw new Session_Exception('Error reading session data.', NULL, Session_Exception::SESSION_CORRUPT);
325 }
326
327 if (is_array($data))
328 {
329 // Load the data locally
SYSPATH\classes\Kohana\Session.php [ 125 ] » Kohana_Session->read(arguments)
SYSPATH\classes\Kohana\Session.php [ 54 ] » Kohana_Session->__construct(arguments)
MODPATH\auth\classes\Kohana\Auth.php [ 58 ] » Kohana_Session::instance(arguments)
MODPATH\auth\classes\Kohana\Auth.php [ 37 ] » Kohana_Auth->__construct(arguments)
APPPATH\classes\Controller\login.php [ 81 ] » Kohana_Auth::instance()
76 {
77 Auth::instance()->force_login($user);
78 $this->redirect('login/login');
79 }
80
81 if(Auth::instance()->logged_in()) {
82 Model::factory('User')->link_user_facebook_id($fb_id);
83 $this->redirect('login/login');
84 } else {
85 $user_data = Model::factory('Facebook')->parse_fb_info($fb->api('/me'));
86 //Model::factory('User')->create_user_from_google_id($user_data);
Ошибка возникает в 81й строке.
На экране мой контроллер login, который выполняет action facebook. Если пользователь залогинен в FB, то возврат происходит сюда же, но уже должна сработать функция, которая принудительно логинит пользователя, найденного в БД по Facebook_id штатными средствами Auth.
Подскажите, что еще можно попробовать ткнуть палкой?