سؤال

Google لديك مستخدم سهل الاستخدام سهلة الاستخدام OpenID Featerated مع اكتشاف Automagic EndPoint Discovery:

يتم تنفيذ ذلك في Servlets Java، هل هناك ما يعادل PHP يمكن استخدامه جنبا إلى جنب مع PHP-OpenID؟

تغطي آلية الاكتشاف، XRDS، في المستند التالي:

  • المجموعات.google.com/group/google-federated-login-api/web/OBENID-DISCOVERY-FOR-HostedDomains.

يبدو أنه يبدو أنه يجب أن تعمل "بسيطة" Diso Xrds-Simple "ولكن الاختبار الأساسي لا يوفر نتائج مفيدة.

  • Code.google.com/p/diso/

شكرا،

هل كانت مفيدة؟

المحلول

حسنا، لقد وجدت أنها واضحة نسبيا لتعديل التنفيذ البسيط XRDS لدعم آلية اكتشاف مضيف Google الخاص ب Google. التحذير يجري هذا هو آلية اكتشاف تجريبية داخل مساحة اسم Google ويجب أن تتغير في وقت ما في وقت لاحق إلى شيء أكثر ملاءمة لنظام مستقل عالميا.

التصحيح ل XRDS بسيط:

مثال استخدام لإيجاد عنوان URL الهوية للتغذية في PHP-OpenID:

<?php

require_once 'XRDS.php';
require_once 'XRDS/Discovery.php';

$domain = 'google.com';

$disco = new XRDS_Discovery();
$disco->discovery_methods = array('XRDS_Discovery_Host_Meta');
$xrds = $disco->discover('https://www.google.com/accounts/o8/.well-known/host-meta?hd=' . $domain);

$xrd = $xrds->xrd[0];
$identityUri = $xrd->service[1]->uri[0]->uri;

if (0 == strcmp($xrd->canonicalId, $domain)) {
    echo "identity uri: $identityUri\n\n";
} else {
    echo "discovery failed.\n\n";
}

?>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top