使用OpenID和用户认证的Cakephp

8
我有一个名为“users”的表格,我想让我的访客使用他们的OpenID帐户登录。为此,我使用了Cakephp的OpenId组件,它运行良好(当我使用Google URL登录时,我收到了“成功验证!”的通知)。
但现在我有些困惑,因为我不知道该怎么继续下去。
以下是一些问题:
- 对于每个在“oid_associations”表中具有新条目的用户,我是否需要创建一个用户条目(所有OpenId交互都保存在mysql数据库中)? - 我是否需要在登录后对用户进行身份验证(或者OpenID组件是否自动执行此操作)? - 我是否完全误解了概念?
1个回答

7
不需要访问“oid_associations”表,该表只被OpenID库使用。您可以使用“identity_url”来确定是否是新用户。如果是新用户,则可以在您的“users”表中创建一个条目,例如(假设您的“users”表具有“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_SUCCESS响应,则表示该用户已经成功验证。如何在您的应用程序中使用此信息取决于您。

希望这回答了你的问题。


谢谢,这真的帮了我很多,现在我也明白如何(或者说在哪里)对用户进行身份验证了。 - Christian Strang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接