在CakePHP中手动授权用户

时间:2011-03-14 03:51:29

标签: cakephp authentication

我希望手动授权用户知道用户名。但是,此帐户没有密码。它是与另一个表中的Twitter帐户关联创建的帐户。我可以验证正确的Twitter帐户是否正在尝试登录,但我需要能够使用Auth组件来授权链接到此Twitter帐户的用户。

链接到Twitter帐户的所有帐户都以相同的方式创建,没有密码。由于我们计划稍后进行更改以改进,因此通用密码不是一个可行的选项 - 无论用户表的密码字段中是什么(或不是),我们都需要对用户进行身份验证。

3 个答案:

答案 0 :(得分:10)

我认为“授权”是指“认证”或“登录”。这就像将用户记录的主要ID传递给Auth::login()

一样简单
$user = $this->User->find('first', array('conditions' => array('twitter_id' => ...)));
$this->Auth->login($user['User']['id']);

答案 1 :(得分:3)

Cake 2.3 +显然要求现在才能在数组中才能正常工作:

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

将id作为单个整数传递不起作用。

答案 2 :(得分:1)

$this->Auth->login($user['User']['id']);
$this->Auth->login($user['User']['username']);
$this->Auth->login($user['User']['password']);  // hashed password