我正在开设一个网站,其中包含linkedin和facebook登录,但也有正常的电子邮件密码登录。我使用Zend Auth实现了登录部分,需要电子邮件和密码。但对于Facebook和LinkedIn部分,我只需要使用API提供的电子邮件进行登录。有没有办法使用Zend Auth登录但没有提供密码?我的代码目前看起来像这样:
$authAdapter->setTableName('users')
->setIdentityColumn('email')
->setCredentialColumn('password')
->setCredentialTreatment('SHA1(?)');
答案 0 :(得分:1)
当我需要登录使用Oauth2从社交网络登录的用户并且不向服务器发送电子邮件时,我有相同的任务我自己生成密码并通过ID登录。
$authAdapter->setTableName('users')
->setIdentityColumn('facebook_id')
->setCredentialColumn('pass')
->setIdentity($id)
->setCredential($pass);
答案 1 :(得分:0)
我认为使用默认的Zend_Auth类是不可能的。
您可以尝试这种方式http://www.kirkaas.com/?p=46,或者您可以在facebook和co的情况下将身份列作为密码传递。在创建帐户时。在登录时,如果它是fb登录,您可以轻松捕获它,并且您可以将标识列作为密码传递,登录将起作用。
答案 2 :(得分:0)
公平地说,我认为您最好创建自己的身份验证适配器,而不是滥用已存在的身份验证适配器。
如果是我,我会创建一个专门用于Facebook / LinkedIn身份验证的适配器,只需要一个电子邮件地址。
如果你确定只有在你进行Facebook / LinkedIn身份验证时才会调用它,我认为你会没事的。