0

我正在开发一个网站,该网站具有linkedin 和 facebook 登录功能,以及普通的电子邮件密码登录功能。我已经使用 Zend Auth 实现了登录部分,这需要电子邮件和密码。但是对于 Facebook 和 LinkedIn 部分,我只需要使用 API 提供的电子邮件登录。有没有办法使用 Zend Auth 登录但没有密码?我的代码现在看起来像这样:

$authAdapter->setTableName('users')

    ->setIdentityColumn('email')

    ->setCredentialColumn('password')

->setCredentialTreatment('SHA1(?)');
4

3 回答 3

1

当我需要使用 Oauth2 登录从社交网络登录的用户并且不向服务器发送电子邮件时,我有同样的任务,我自己为此生成密码并通过 ID 登录。

    $authAdapter->setTableName('users')
                ->setIdentityColumn('facebook_id')
                ->setCredentialColumn('pass')
                ->setIdentity($id)
                ->setCredential($pass);
于 2013-08-07T08:28:19.430 回答
0

公平地说,我认为您最好创建自己的身份验证适配器,而不是滥用已经存在的适配器。

如果是我,我会创建一个专门用于您的 Facebook/LinkedIn 身份验证的适配器,并且只需要一个电子邮件地址。

如果您确保仅在进行 Facebook/LinkedIn 身份验证时才调用它,我认为您会没事的。

于 2013-08-07T09:05:23.170 回答
0

我认为使用默认的 Zend_Auth 类是不可能的。

您可以尝试这种方式http://www.kirkaas.com/?p=46或者您可以将身份列作为密码传递给 facebook 和 co。在创建帐户时。在登录时,如果它是 fb 登录,您可以轻松捕获它,并且您可以将身份列作为密码传递,并且登录将起作用。

于 2013-08-06T19:08:33.303 回答