|
@@ -56,11 +56,11 @@
|
56
|
56
|
public static function buildRequest($type, $base, $delegate, $identity, $returnURL, $handle) {
|
57
|
57
|
$args = array(
|
58
|
58
|
'openid.ns' => self::NAMESPACE,
|
59
|
|
- 'openid.mode' => 'checkid_' . $type,
|
60
|
|
- 'openid.identity' => $delegate,
|
61
|
|
- 'openid.claimed_id' => $identity,
|
62
|
|
- 'openid.trust_root' => self::getTrustRoot(),
|
63
|
|
- 'openid.return_to' => self::addArguments($returnURL,
|
|
59
|
+ 'openid.mode' => 'checkid_' . $type,
|
|
60
|
+ 'openid.identity' => $delegate,
|
|
61
|
+ 'openid.claimed_id' => $identity,
|
|
62
|
+ 'openid.trust_root' => self::getTrustRoot($returnURL),
|
|
63
|
+ 'openid.return_to' => self::addArguments($returnURL,
|
64
|
64
|
array('openid.nonce' => $_SESSION['openid']['nonce']))
|
65
|
65
|
);
|
66
|
66
|
|
|
@@ -73,12 +73,19 @@
|
73
|
73
|
return self::addArguments($base, $args);
|
74
|
74
|
}
|
75
|
75
|
|
76
|
|
- private static function getTrustRoot() {
|
|
76
|
+ private static function getTrustRoot($base = null) {
|
77
|
77
|
if (defined('OPENID_TRUSTROOT')) {
|
78
|
78
|
return OPENID_TRUSTROOT;
|
79
|
|
- } else {
|
80
|
|
- return self::getCurrentURL();
|
81
|
79
|
}
|
|
80
|
+
|
|
81
|
+ $curr = self::getCurrentURL();
|
|
82
|
+ $root = $base == null ? $curr : $base;
|
|
83
|
+
|
|
84
|
+ while (substr($curr, 0, strlen($root)) != $root) {
|
|
85
|
+ $root = dirname($root) . '/';
|
|
86
|
+ }
|
|
87
|
+
|
|
88
|
+ return $root;
|
82
|
89
|
}
|
83
|
90
|
|
84
|
91
|
private static function addSRegArgs(&$args) {
|