3

現在、大学向けの小さな Web サイトに openID を実装する実験を行っています。私はこれに非常に慣れておらず、関連記事をフォローアップしています。lightopenId をダウンロードし、フォルダーを Web サーバーにアップロードしました。私の学校では Google がメール サービスをホストしているため、典型的なメール アドレスは次のようになりますstudentlastname@myuniversity.edu。Google がログインmail.google.com専用に設計したカスタム Web ページからログインできますmail.google.com/a/oakland.edu/

ユーザーを一般にリダイレクトする代わりに$openid->identity = 'https://www.google.com/accounts/o8/id';、カスタム大学の Google がホストするページにユーザーをリダイレクトして認証することはできますか?

エラーが発生します:

に OpenID サーバーが見つかりません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();
    }
4

1 に答える 1

2

私の知る限り、あなたの場合の正しい身元は次のとおりです。

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

この URL は有効な XRDS を返します (したがって、LightOpenID はサーバーを見つけます)。

サーバーが適切に構成されていない場合、 を呼び出したときに同様のエラーが発生する可能性があることに注意してくださいvalidate()

于 2012-08-14T17:14:11.797 に答える