现在我正在处理我们需要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成功登录后告诉我如何将用户存储在数据库中。
答案 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