В настоящее время я пытаюсь расширить плагин пользователей cakeDC. Это оказывается довольно трудно интегрировать этот плагин с плагином для Opauth расположенного здесь:Расширение плагина пользователей CakeDC для использования с Opauth или OpenID
https://github.com/uzyn/cakephp-opauth
Например, я хочу в своем приложении возможность зарегистрироваться и войти пользователь через Facebook, Google и т.д. ...
Я пытаюсь это с реализацией google, и я могу получить данные из Google через плагин opauth. Мои проблемы связаны с тем, что мне теперь делать с этой информацией? Если я хочу, чтобы зарегистрировать пользователя с моим App, я не знаю, следующие шаги, чтобы сделать это ...
Это то, что данные, возвращаемые в массиве выглядит следующим образом:
Array
(
[auth] => Array
(
[uid] => 1xxxxxxxxx1
[info] => Array
(
[name] => xxx xxx
[email] => [email protected]
[first_name] => xx
[last_name] => xx
)
[credentials] => Array
(
[token] => #%*(&)(*&%)*^$^)($%
[expires] => 2013-08-09T19:23:10+00:00
)
[raw] => Array
(
[id] => 1XXXXXXXXXXXXX1
[email] => [email protected]
[verified_email] => 1
[name] => XXX XXX
[given_name] => XXXX
[family_name] => XXXXX
[gender] => male
[locale] => en
[hd] => test.com
)
[provider] => Google
)
[timestamp] => 2013-08-09T18:23:11+00:00
[signature] => *#&$&$$&$&$&$&$$####
[validated] => 1
)
Это оленья кожа мне кажется, что есть токен паролей, который остается сгенерированным для сравнения, но это даже не текущий блокиратор. Блокатор находится в том, как регистрировать эту информацию в расширенном классе плагинов пользователей cakeDC. Любая помощь очень приветствуется, и я уверен, что я не единственный разработчик, который любопытно, как расширить этот плагин для интеграции с плагином Opauth.
правок: (** РАБОЧАЯ LOGIN CODE **)
public function beforeFilter() {
$this->Auth->Allow('opauth_complete');
}
public function opauth_complete() {
$user = $this->set('opauth_data', $this->request->data);
$loginUser = $this->User->find('first',
array('fields'=>array('User.*'),
'conditions'=>array('User.email'=>$this->request->data['auth']['info']['email'])));
if ($this->request->is('post')) {
if ($this->Auth->login($loginUser)) {
//return $this->redirect($this->Auth->redirect());
$this->Session->setFlash(__('You are logged in.'));
}else{
$this->Session->setFlash(__('You are currently not Authorized'));
}
}
}
зависание, кажется, на $ this-> Auth-> Логин ($ loginUser); Он находит пользователя в базе данных, и все же он по-прежнему не авторизует их через учетную запись google.
Я смотрел на это снова и снова и, кажется, пропустил шаг и, вероятно, был второстепенным. Я отредактировал мой первоначальный вопрос, и вы увидите мой очень простой попытки разрешить зарегистрированным пользователем – lockdown
Оказывается, это был ключ все вместе: \t общественная функция beforeFilter() { \t \t $ this-> Auth-> Разрешить ('opauth_complete'); \t} – lockdown