2010-05-04 168 views
8

我有一个表“用户”,我想让我的访问者用他们的openID帐户登录。为此,我使用OpenId Component for Cakephp,它工作正常(当我使用Google URL登录时,我收到“已成功验证!”通知)。CakePHP与OpenID和用户身份验证

但现在我有点卡住了,因为我不知道如何继续下去。

  • 我是否必须为每个在“oid_associations”表中有一个新条目的用户创建一个User-Entry(我将所有的OpenId交互保存在mysql数据库中)?
  • 我需要在登录后认证用户吗(还是OpenID组件自动执行该操作?)。
  • 我完全误解了这个概念吗?

回答

7

不,您不必访问“oid_associations”表,它只是一个仅由OpenID库使用的表。

相反,您可以使用identity_url来确定它是否是新用户。如果是这种情况,则可以在“用户”表中创建一个条目。例如(假设你的“用户”表中有一个“OpenID的”列):

$response = $this->Openid->getResponse($returnTo); 

if ($response->status == Auth_OpenID_SUCCESS) { 
    $user = $this->User->findByOpenid($response->identity_url); 
    if ($user) { 
     // existing user 
    } else { 
     // new user -> create user entry in the database 
    } 
} 

我不知道我正确理解你的第二个问题。如果有人使用OpenID登录,并且您收到Auth_OpenID_SUCESS响应,则表示此用户已通过身份验证。您如何在您的应用程序中使用这些信息取决于您。

我希望这能回答你的问题。

+0

谢谢你真的帮助我,现在我也明白如何(分别在哪里)验证用户。 – 2010-05-05 16:46:52