Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 2.x不会手动登录_Cakephp_Cakephp 2.0 - Fatal编程技术网

Cakephp 2.x不会手动登录

Cakephp 2.x不会手动登录,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我正在尝试将facebook身份验证集成到我的Cakephp 2.2.4应用程序中,一旦facebook身份验证完成,我将尝试创建用户并手动登录用户,我看到尽管下面的代码正在创建一个身份验证会话,即,$this->auth->user()包含所有数据,但它并没有将用户登录到应用程序中,即,我无法访问应用程序的其他功能 $user = $this->User->findById($user_id); $this->Auth->login($user); 这

我正在尝试将facebook身份验证集成到我的Cakephp 2.2.4应用程序中,一旦facebook身份验证完成,我将尝试创建用户并手动登录用户,我看到尽管下面的代码正在创建一个身份验证会话,即,$this->auth->user()包含所有数据,但它并没有将用户登录到应用程序中,即,我无法访问应用程序的其他功能

$user = $this->User->findById($user_id);
        $this->Auth->login($user);
这是我用来手动登录的,保存的用户不包含用户名和密码

这在我的AppController.php中

class AppController extends Controller {
public $components = array(
'Session',
'Auth'=>array(
     'loginRedirect'=>array('controller'=>'Users','action'=>'dashboard'),
     'logoutRedirect'=>array('controller'=>'Users','action'=>'login'),
     'authError'=>'You can\'t access that page',
     'authenticate' => array(
        'Form' => array(
            'fields' => array('username' => 'email')
        ),'Basic'),
     'authorize'=>array('controller')
    ),
'RequestHandler'    
);

public $helpers = array('Js' => array('Jquery'),'Html','Form');

public function isAuthorized($user){
    return TRUE ;
}

public function beforeFilter(){

    // $this->Auth->allow('index','view');
    // $this->set('logged_in',$this->Auth->loggedIn());
    // $this->set('current_user',$this->Auth->user());
}
}试试:

$this->Auth->login($user['User']);

这与cakephp应用程序无关,而是我在facebook上使用的插件,它没有发布数据

可能Auth组件仍然引用用户名字段进行身份验证,而不是电子邮件。您可以尝试更改为用户名。

我正在开发一个插件,它使用Facebook oAuth作为Auth组件的身份验证对象。如果您想要使用服务器端Facebook登录的已构建解决方案,请查看我的网站:

如果它正在创建$this->Auth->user()数据,我相信这意味着他们已登录。但默认情况下,登录并不仅仅是向站点范围内的所有内容授予权限。提供更多关于您如何向登录者授予权限的代码。dave我已经给出了上面的appcontroller代码,是的$this->Auth->loggedIn()在特定操作中显示为true,即,在facebook身份验证后应用程序重定向到的操作,但在其他操作中显示为$this->Auth->loggedIn()显示错误我以前尝试过这种方法,也尝试过其他方法,它显示已登录但无法访问任何操作我对cakephp 3.7.9有相同的体验我尝试过使用setUser函数,但$this->Auth->User只能在调用它的同一页面上使用