スポンサーリンク

このドキュメントの内容は、以下の通りです。

ZendFrameworkでOpenIDを使う方法について紹介します。

The system doesn't have proper big integer extension

というエラーメッセージが出た場合には、PHPの必要なエクステンションが入っていません。

ZendFrameworkのOpenIDは

  • GMP
  • OPENSSL が必要になります。

PHPモジュールのインストール


GMPやOpenSSLのモジュールが入っていない場合には、php5-extensionsをビルドしなおします。

FreeBSDなら下記の方法で再ビルド&インストールできます。
make configのときにGMPとOpenSSLにチェックを入れてください。
/usr/ports/lang/php5-extensions/
sudo make config
sudo portupgrade -rf /var/db/pkg/php5-extensions-1.2/

サンプルソース


<?php
require 'Zend/Auth.php';
require 'Zend/Auth/Adapter/OpenId.php';
$status = "";
$auth = Zend_Auth::getInstance();
try {
    if ((isset($_POST['openid_action']) &&
         $_POST['openid_action'] == "login" &&
         !empty($_POST['openid_identifier'])) ||
        isset($_GET['openid_mode']) ||
        isset($_POST['openid_mode'])) {
        $result = $auth->authenticate(
            new Zend_Auth_Adapter_OpenId(@$_POST['openid_identifier']));
        if ($result->isValid()) {
            $status = "You are logged in as "
                    . $auth->getIdentity()
                    . "<br>\n";
        } else {
            $auth->clearIdentity();
            foreach ($result->getMessages() as $message) {
                $status .= "$message<br>\n";
            }
        }
    } else if ($auth->hasIdentity()) {
        if (isset($_POST['openid_action']) &&
            $_POST['openid_action'] == "logout") {
            $auth->clearIdentity();
        } else {
            $status = "You are logged in as "
                    . $auth->getIdentity()
                    . "<br>\n";
        }
    }
} catch (Zend_OpenId_Exception $e) {
        echo '<pre>';
        var_dump($e);
        exit;
} catch (Exception $e) {
        echo '<pre>';
        var_dump($e);
        exit;
}
?>
<html><body>
<?php echo htmlspecialchars($status);?>
<form method="post"><fieldset>
<legend>OpenID Login</legend>
<input type="text" name="openid_identifier" value="">
<input type="submit" name="openid_action" value="login">
<input type="submit" name="openid_action" value="logout">
</fieldset></form></body></html>

ログイン


OpenIDは http://open.login.yahoo.co.jp/ などから取得可能です。
ログインボックスに下記のような文字列を入れます。
https://me.yahoo.co.jp/a/あなたのごにょごにょ文字列
参照しているページ (サイト内): [2009-05-21-3] [2009-05-21-2] [2009-04-29-1] [2009-04-24-2] [2009-03-16-1]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー