如何让客户使用他们的Google帐户登录您的网站?

时间:2009-01-26 11:53:01

标签: php mysql login openid

我刚看到http://uservoice.com/login。它使用Google帐户Myspace,雅虎,OpenID以及所有客户登录其网站?我能这样做吗?

我的意思是,客户无需注册我的网站。他们可以在上述网站上使用自己的帐户登录。

如果您有解决方案,我更喜欢基于PH​​P和MySQL的解决方案。

7 个答案:

答案 0 :(得分:15)

见这里:Google Login PHP Class

另请务必参阅Google Federated Login site以获取更多信息。

答案 1 :(得分:5)

您可能也想看一下:https://rpxnow.com/ - 它只需要在HTML / javascript级别进行集成。

这似乎是http://uservoice.com/login使用的内容。

答案 2 :(得分:4)

您应该查看OpenID Enablded PHP库(http://www.openidenabled.com/php-openid/)。

这对任何LAMP安装都应该很好用,而不需要使用Zend。

答案 3 :(得分:3)

来自Zend_OpenId

Zend Framework

  

Zend_OpenId是一个Zend Framework组件,它为构建支持OpenID的站点和身份提供者提供了一个简单的API。

答案 4 :(得分:1)

答案 5 :(得分:1)

Uservoice用户RPX http://rpxnow.com。您可以轻松地将它与PHP一起使用,只需https并解析json或xml repsonse。您甚至不需要更改数据库架构或在本地存储任何内容。

答案 6 :(得分:-1)

我认为对你来说是个好方法  一步一步

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>

我差点忘了注销你可以杀掉会话;