Премини към съдържанието

Препоръчан отговор


Здравейте, от скоро използвам Кохана 3.3.1 и се опитвам да използвам  метода за аутологин, но:

$auth = Auth::instance()->login($user_profile['email'],sha1($user_profile['id']), TRUE);

ми връща false всеки път, при съществуващ юзър в базата и валидна сесия.

На какво може да се дължи? Благодаря предварително.

Имам го като модул и config-a ми е:

<?php defined('SYSPATH') or die('No direct access allowed.');

return array(

    'driver'        => 'ORM',
    'hash_method'   => 'SHA1',
    'salt_pattern'  => '1, 3, 5, 9, 14, 15, 20, 21, 28, 30',
    'hash_key'      => 'mykey',
    'lifetime'      => 1209600,
    'session_key'   => 'auth_user',
    'autologin_key' => 'auth_autologin',
    'forced_key'    => 'auth_forced',
    'session_type' => Session::$default,


    // Username/password combinations for the Auth File driver
    'users' => array(
        
    ),

);

Кодът ми е:

public function action_fbLogin(){
      
        $facebook = new Facebook(array(
            'appId'  => 'appid',
            'secret' => 'Secret',
        ));

        $user = $facebook->getUser();
        if ($user) {

            $user_profile = $facebook->api('/me', array('fields' => 'id,email,name,first_name,last_name,picture')); 
            $user_id = Model_UserFunctions::checkIfUserExist($user_profile['email']); 
            $fb_id = Model_UserFunctions::checkIfFbUserExist($user_profile['email']);
            if($user_id > 0 && $fb_id >0)
            {
                
                Session::instance()->set('user', array(
                    'fb_id' => $user_profile['id'],
                    'user_id' => $user_id,
                    'pic' => $user_profile['picture'],
                    'email' => $user_profile['email'],
                    'first_name' =>  $user_profile['first_name'],
                    'last_name' =>  $user_profile['last_name'],

                ));


                $auth = Auth::instance()->login($user_profile['email'],sha1($user_profile['id']), TRUE); 
                //var_dump($auth);
                $this->redirect('profile');
                exit;
            } 
            $values = array(
                    'email' => $user_profile['email'],
                    'username' => $user_profile['email'],
                    'password' => sha1($user_profile['id']),
                    'fb_id' => $user_profile['id']
                );
            $user = ORM::factory ( 'User' );
            $user->values($values);
            
            
            try
            {

                if($user->save()){
                    $user_new_id = $user->as_array();
                    $user_new_id = $user_new_id['id'];
                    Session::instance()->set('user', array(
                            'fb_id' => $user_profile['id'],
                            'user_id' => $user_new_id,
                            'pic' => $user_profile['picture'],
                            'email' => $user_profile['email'], 
                            'first_name' => $user_profile['first_name'],
                            'last_name' => $user_profile['last_name'],
                        ));
                      $user->add('roles', ORM::factory('Role')->where('name', '=', 'login')->find());

                    $this->redirect('profile');
                }


            }
            catch (ORM_Validation_Exception $e)
            {
                $result = $e->errors('models');
                echo '<pre>';
                print_r($result);
                exit;
            }


        }
        else 
        {
            
            $this->redirect($facebook->getLoginUrl(array('id,email,name,first_name,last_name,picture'))); 
        }
        exit;
    
    }

 

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Здравей... някъде ти се бъгясва цялата връзка или става нещо при самите сесии и проверки. Виж си кода и махни коментара на var_dump($auth); и виж какво ще ти дъмп-и на екрана.

$auth = Auth::instance()->login($user_profile['email'],sha1($user_profile['id']), TRUE); 
                //var_dump($auth);

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход


×

Информация

Този сайт използва бисквитки (cookies), за най-доброто потребителско изживяване. С използването му, вие приемате нашите Условия за ползване.