是否可以将CakePHP默认auth与混合Auth一起使用?

时间:2015-05-25 06:57:39

标签: cakephp-3.0 hybridauth

现在我正在处理我们需要facebook和twitter登录的项目。 我还在我的项目中配置了登录,但现在它没有使用简单的用户名和密码进行身份验证。

这是AppController.php

class AppController extends Controller
{
    public function initialize()
    {
            $this->loadComponent('Flash');
            $this->loadComponent('Auth', [     
                'loginRedirect' => [
                    'controller' => 'Users',
                    'action' => 'index'
                ],
                'logoutRedirect' => [
                    'controller' => 'Users',
                    'action' => 'login'
                ],
                'authenticate' => [
                        'ADmad/HybridAuth.HybridAuth'
                ]
            ]);        
    }
}

仅使用facebook和twitter登录,请在fb或twitter成功登录后告诉我如何将用户存储在数据库中。

2 个答案:

答案 0 :(得分:0)

将上述功能更改为此。

   public function initialize()
    {
            $this->loadComponent('Flash');
            $this->loadComponent('Auth', [
                'authenticate' => [
                        'Form',
                        'ADmad/HybridAuth.HybridAuth'
                ],
                'loginRedirect' => [
                    'controller' => 'Users',
                    'action' => 'index',
                    'plugin' => false
                ],
                'logoutRedirect' => [
                    'controller' => 'Users',
                    'action' => 'login',
                    'plugin' => false
                ]
            ]);        
    }

答案 1 :(得分:0)

这里的要点是:只需添加" Form"在"认证"。 CakePHP可以同时处理许多登录类型。 要将用户存储在数据库中,只需按照插件的说明设置users和social_profiles表。 然后只需添加常规用户逻辑(UsersController + login.ctp等)。

以下是我加载Auth组件以实现此目的的方法:

SELECT u.id, u.userName, g.groupName FROM User u JOIN u.userGroups g