プロバイダーからOpenID情報を取得するより良い方法はありますか?

cakephp openid php
プロバイダーからOpenID情報を取得するより良い方法はありますか?

OpenIDロジックは初めてです。 私は、CakebakerによるCakePHPのOpenIDコンポーネントと、JanRainによるPHP OpenIDライブラリを使用しています。

すべてうまく機能していますが、プロバイダーとメソッド(sreg vs. ax). だからこれは私が思いついたものです:

if ($axResponse) {
    if (is_array($a = $axResponse->get('http://axschema.org/contact/email'))) {
        $user_record['email'] = $a[0];
        if (is_array($b = $axResponse->get('http://axschema.org/namePerson'))) {
            $user_record['nickname'] = $b[0];
        }
    } else if (is_array($a = $axResponse->get('http://schema.openid.net/contact/email'))) {
        $user_record['email'] = $a[0];
        if (is_array($b = $axResponse->get('http://schema.openid.net/namePerson'))) {
            $user_record['nickname'] = $b[0];
        }
    }
} else if ($sreg) {
    if (isset($sreg['email'])) {
        $user_record['email'] = $sreg['email'];
    }
    if (isset($sreg['nickname'])) {
        $user_record['nickname'] = $sreg['nickname'];
    }
}

Google、Yahoo!で正常にテストしましたが AOLのOpenIDを使用すると、他の小規模なプロバイダーで問題が発生する可能性があります。 同じ結果を達成するためのより良い方法はありますか? 他のオプションのフィールドを取得しようとすると、これは特に欠陥があるようです…​

  8  1


ベストアンサー

OpenIDは、データアクセスの承認ではなく、ユーザー認証の標準であることに注意してください。 当然、OpenIDを使用して特定のユーザー情報を取得できますが、それはプロトコルの主な目的ではありません。 OAuthは認証の標準であり、ユーザーデータの取得が必要な場合は、これから始めることをお勧めします。

2


ごめんなさい…​ 「CakePHPのOpenIDコンポーネント」についてはあまり知りませんが、* lightopenid *で作業しており、これもオープンソースです。

これをチェックしてください:http://code.google.com/p/lightopenid/updates/list

私はこれで何度も働いてきました。 そしてそれは良いです。 これが役立つことを願っています…​

0


タイトルとURLをコピーしました