2015-05-25 4 views
1

Сейчас я работаю над проектом, где нам нужны Facebook и Twitter. И я также настраиваю логин в своем проекте, но теперь его не аутентифицируют с простым именем пользователя и паролем.Можно ли использовать как CakePHP default auth с гибридным Auth?

Это 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 и щебет входа в систему, и, пожалуйста, дайте мне знать, как хранить пользователя в базе данных после успешного входа в фб или твиттер.

ответ

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 
       ] 
      ]);   
    } 
0

Пункт здесь: просто добавьте «Форма» под «authenticate». CakePHP может обрабатывать множество типов входа одновременно. Чтобы сохранить пользователей в базе данных, следуйте инструкциям плагина, чтобы настроить таблицы пользователей и social_profiles. Затем просто добавьте свою обычную логику пользователя (UsersController + login.ctp и т. Д. И т. Д.).

Вот как я загрузить компонент Auth для достижения этой цели:

$this->loadComponent('Auth', [ 
    'authenticate' => [ 
     'Form' => [ 
      'fields' => [ 
       'username' => 'email', 
       'password' => 'password' 
      ], 
     ], 
     'ADmad/HybridAuth.HybridAuth' => [ 
      'fields' => [ 
       'provider' => 'provider', 
       'openid_identifier' => 'openid_identifier', 
       'email' => 'email' 
      ], 
      'profileModel' => 'ADmad/HybridAuth.SocialProfiles', 
      'profileModelFkField' => 'user_id', 
      'hauth_return_to' => null 
     ], 
    ], 
]); 
Смежные вопросы