我刚看到了http://uservoice.com/login,它使用Google账户、Myspace、Yahoo和OpenID等,让客户登录其网站? 我能做到吗?
我的意思是,客户无需在我的网站上注册,他们可以使用上述网站的账户直接登录。
如果您有解决方案,我更喜欢基于PHP和MySQL的方案。
我刚看到了http://uservoice.com/login,它使用Google账户、Myspace、Yahoo和OpenID等,让客户登录其网站? 我能做到吗?
我的意思是,客户无需在我的网站上注册,他们可以使用上述网站的账户直接登录。
如果您有解决方案,我更喜欢基于PHP和MySQL的方案。
Zend_OpenId是Zend Framework组件的一部分,为构建OpenID启用的站点和身份提供者提供了简单的API。
Uservoice用户可以使用RPX http://rpxnow.com。您可以轻松地在PHP中使用它,只需使用https并解析json或xml响应即可。您甚至不需要更改数据库架构或本地存储任何内容。
我认为这对你来说是一个好的解决方案,一步一步来。
1-下载openid
2-创建名为login.php的文件,像这样(在同一目录中或更改require_one到你自己的目录):
<?php
require_once 'openid.php';
$myopenid = new LightOpenID("your-domain.com");//no problem even if u can write http://localhost
if ($myopenid->mode) {
if ($myopenid->mode == 'cancel') {
echo "User has canceled authentication !";
} elseif($myopenid->validate()) {
$data = $myopenid->getAttributes();
$email = $data['contact/email'];
$first = $data['namePerson/first'];
echo "Identity : $openid->identity <br>";
echo "Email : $email <br>";
echo "First name : $first";
} else {
echo "The user has not logged in";
}
} else {
echo "Go to index page to log in.";
}
?>
3-next 是关于创建名为 index.php 的文件:
<?php
require_once 'openid.php';
$openid = new LightOpenID("your-domain.com");//no problem even if u can write http://localhost
$openid->identity = 'https://www.google.com/accounts/o8/id';
$openid->required = array(
'namePerson/first',
'namePerson/last',
'contact/email',
);
$openid->returnUrl = 'your-domain.com/login.php'
?>
<a href="<?php echo $openid->authUrl() ?>">Login with Google</a>
我差点忘了,要注销可以杀死会话;