php - 用于大学 Google 托管电子邮件的 lightopenID

标签 php openid lightopenid

我目前正在尝试为大学的小型网站实现 openID。我对此很陌生,并已跟进相关文章。我已经下载了 lightopenId 并将文件夹上传到我的网络服务器。我的学校有谷歌托管他们的电子邮件服务,所以典型的电子邮件地址是:像这样 studentlastname@myuniversity.edu .我们可以通过mail.google.com登录或由谷歌专门为我们的登录设计的自定义网页mail.google.com/a/oakland.edu/ .

而不是让用户被重定向到一般 $openid->identity = 'https://www.google.com/accounts/o8/id';我可以让用户定向到自定义大学谷歌托管页面进行身份验证吗?

给我错误:

No OpenID Server found at http://mail.google.com/a/oakland.edu/accounts/o8/id

openid.php:

<? 
    <?php
    require 'openid.php';
    try {
        # Change 'localhost' to your domain name.
        $openid = new LightOpenID('http://webprolearner.ueuo.com');
        if(!$openid->mode) {
            if(isset($_GET['login'])) {
                $openid->identity = 'mail.google.com/a/oakland.edu/accounts/o8/id';
                header('Location: ' . $openid->authUrl());
            }
    ?>
    <form action="?login" method="post">
        <button>Login with Google</button>
    </form>
    <?php
        } elseif($openid->mode == 'cancel') {
            echo 'User has canceled authentication!';
        } else {
            echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.';
        }
    } catch(ErrorException $e) {
        echo $e->getMessage();
    }

最佳答案

据我所知,您的情况下正确的身份是:

https://www.google.com/accounts/o8/site-xrds?hd=oakland.edu

此 url 返回一个有效的 XRDS(因此 LightOpenID 将找到一个服务器)。

请注意,如果服务器配置不正确,您在调用 validate() 时可能会遇到类似的错误。

关于php - 用于大学 Google 托管电子邮件的 lightopenID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11944579/

相关文章:

php - LightOpenID 无法连接到 2a00:1450:4016:804::2004: 网络无法访问

php - LightOpenID 谷歌示例不起作用

php - 未使用$ _SESSION变量创建Docker项目

php - PHP 的 include 资源消耗大吗(特别是在迭代期间)?

php - 需要将总计添加到已有计数的联合查询中

java - 使用 Google 验证用户身份

python - Appengine 上的社交身份验证有哪些不同选项 - 它们如何比较?

facebook - OpenID的命运如何?

javascript - JSON obj 到 javascript 中的动态多维数组

php - 使用 lightopenid/注销保留登录信息