0

基本的にとを組み合わせたLightOpenIdを使用しています。OpenIDOAuth1.0

承認は正常に機能しますが、顧客は毎回承認する必要があります。OpenID私は、顧客がすでに承認したことを認識したいと思います(基本的には「この承認を記憶する」チェックボックスを使用しています)、承認マスクを再度表示せずに通過します。

これはどのように行うことができますか?

ありがとう、クリスチャン

4

1 に答える 1

0

私は自分のアプリケーションでこの問題をしばらく無視していましたが、コメントにあったため、解決策をほとんど見逃していました。

以下のように、LightOpenId コードを実際に変更せずに、ハンドラーの最初の部分に「修正」を適用することができます。

  $mysiteurl = 'https://my.site.url/'; // note trailing '/' included

  $openid = new LightOpenID($mysiteurl); // <- the trailing '/' onwards is stripped internally
  if (!$openid->mode) {
      $openid->required = array(
        'namePerson/first',
        'namePerson/last'
         // etc...
      );
      // redirects to google openid provider
      $openid->identity = 'https://www.google.com/accounts/o8/id';
      $openid->realm = $mysiteurl; // <- ADD THIS LINE - resets realm with the trailing '/'
      header('Location: ' . $openid->authUrl());
      return;

  } elseif ($openid->mode == 'cancel') {
    header('Location: '. $mysiteurl.'cancelled.php');
    return;

  } elseif (!$openid->validate()) {
    header('Location: '. $mysiteurl.'failed.php');
    return;
  }

  header('Location: '. $mysiteurl.'success.php');
  return;
于 2013-04-27T16:49:11.750 に答える