Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cakephp跨整个站点登录_Php_Session_Cakephp_Authentication_Oauth - Fatal编程技术网

cakephp跨整个站点登录

cakephp跨整个站点登录,php,session,cakephp,authentication,oauth,Php,Session,Cakephp,Authentication,Oauth,我使用HybridAuth插件在地址=/cake/HybridAuth/auth/google处登录,然后我使用这些详细信息在数据库中查找用户并将他们登录到默认的CakePHP auth,如下所示: $hybridauth = new Hybrid_Auth($hybridauth_config); $adapter = $hybridauth->authenticate($provider); $userprofile = $adapter->getUserPro

我使用HybridAuth插件在地址=/cake/HybridAuth/auth/google处登录,然后我使用这些详细信息在数据库中查找用户并将他们登录到默认的CakePHP auth,如下所示:

   $hybridauth = new Hybrid_Auth($hybridauth_config);
   $adapter = $hybridauth->authenticate($provider);
   $userprofile = $adapter->getUserProfile();
    //look up user + register if not found

        $this->loadModel('User');

        $isUser = $this->User->find('first', array(
                    'conditions' => array(
                        'User.provider' => strtolower($provider),
                        'User.identifier' => $userprofile->identifier
                    ),
                    'callbacks' => true
                ));

        if(!$isUser){
            //register the user
        } else {
            //update user with new credentials
            $this->Auth->login($isUser["User"]);

            //this doesn't work across the whole site, 
            //only this controller's "action" page
        }
这一切都很好,直到我回到我的主页/cake/,那里似乎没有认出我已经登录-尽管在控制器的操作页面(cake/hybridauth/auth/google)上,我让用户登录到auth组件,并且上面的代码似乎工作正常

你知道我遗漏了什么吗


非常感谢。

我不太了解Cake,但可能正在设置一个Cookie,该Cookie仅适用于
/hybridauth/auth/google
路径?(当没有指定显式路径时,使用的是当前路径)我认为可能是这样的,但没有设置cookies。。。这很奇怪,因为一分钟内数据就在会话中,然后在主页上它就不…使用
debug($this->session->read())
确定主页上存在哪些会话数据。如果它不在那里,那么它会被删除,如果它在那里,那么你的电话可能有问题。还请检查您的会话ID是否保持一致,如果会话ID发生更改,则可能会删除您对数据的访问。谢谢@Alex这似乎是问题所在,但如何防止这种情况发生?我尝试将安全性设置为低,但每次重新加载控制器页面时,它都会生成一个新会话。。。