0

login.phpreturn.phpの 2 つのページがあります。どちらもLightOpenIDを使用します。

ページlogin.phpは、OpenID プロバイダーへのリンクを作成し、プロバイダーに結果をreturn.phpに返すように指示します。

以下は、これら 2 つのページを使用する通常の流れです。

  1. login.phpに移動し、リンクをクリックします。
  2. Google アカウントを使用してログインします。
  3. システムはreturn.phpにリダイレクトし、User ... がログインしたことを示します。

ただし、後で、return.phpの URL をクエリ文字列 (手順 3 からコピー) とともに貼り付けることで、手順 2 を実行しなくても、return.phpに同じことを言わせることができます。

ユーザーが実際に OpenID を使用してログインしているか、以前のログインの URL を単に貼り付けているかを確認するにはどうすればよいですか?

コードは次のとおりです。

login.php

<?php
require_once 'openid.php';

$openid = new LightOpenID("mydomain.com");
$openid->identity = 'https://www.google.com/accounts/o8/id';
$openid->returnUrl = 'http://mydomain.com/return.php'
?>

<a href="<?= $openid->authUrl() ?>">Login</a>

return.php

<?php
require_once 'openid.php';

$openid = new LightOpenID("mydomain.com");
if($openid->mode) {
  echo 'User ' . ($openid->validate() ? $openid->identity .  ' has ' : 'has not ') . 'logged in.';
} elseif($openid->mode == 'cancel') {
  echo 'User has canceled authentication!';
} else {
  echo 'Please go to login.php';
}
?>
4

2 に答える 2

0

LightOpenId のドキュメントは役に立ちません。しかし、この質問は役立つかもしれません:リンク

于 2012-03-22T03:30:28.153 に答える