Авторизовать пользователя вручную в CakePHP - PullRequest
2 голосов
/ 14 марта 2011

Я хочу вручную авторизовать пользователя, зная имя пользователя.Эта учетная запись, однако, не имеет пароля.Это учетная запись, созданная с привязкой к учетной записи Twitter в другой таблице.Я могу убедиться, что корректная учетная запись Twitter пытается войти, но мне нужно иметь возможность использовать компонент Auth для авторизации пользователя, связанного с этой учетной записью Twitter.

Все учетные записи, связанные с учетной записью Twitter, создаются одинаково, без пароля.Поскольку мы планируем внести изменения, чтобы улучшить это позже, универсальный пароль не является жизнеспособным вариантом - нам нужно аутентифицировать пользователя независимо от того, что находится (или нет) в поле пароля таблицы пользователей.

Ответы [ 3 ]

10 голосов
/ 14 марта 2011

Полагаю, под словом «авторизовать» вы подразумеваете «аутентифицировать» или «войти». Это так же просто, как передача основного идентификатора записи пользователя в Auth::login():

$user = $this->User->find('first', array('conditions' => array('twitter_id' => ...)));
$this->Auth->login($user['User']['id']);
3 голосов
/ 24 июля 2013

Cake 2.3 +, очевидно, требует, чтобы это теперь было в массиве для правильной работы:

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

Это не сработало, просто передав идентификатор как одно целое число.

1 голос
/ 28 марта 2012
$this->Auth->login($user['User']['id']);
$this->Auth->login($user['User']['username']);
$this->Auth->login($user['User']['password']);  // hashed password
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...