I'm adding php-openid into the PHP CMS Contao, the request fires off to the OpenID provider OK but trouble occur when processing the result.
Within the function Consumer::_processCheckAuthResponse($response,$server_url), the check:
$is_valid = $response->getArg(Auth_OpenID_OPENID_NS, 'is_valid',
'false');
This data isn't present in the response from my OpenID provider, thus the entire request fails.
The following response is set for $response at runtime:
object(Auth_OpenID_Message)#44 (4) {
["allowed_openid_namespaces"]=>
array(3) {
[0]=>
string(28) "http://openid.net/signon/1.0"
[1]=>
string(28) "http://openid.net/signon/1.1"
[2]=>
string(32) "http://specs.openid.net/auth/2.0"
}
["args"]=>
object(Auth_OpenID_Mapping)#43 (2) {
["keys"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(32) "http://specs.openid.net/auth/2.0"
[1]=>
string(8) "is_valid"
}
}
["values"]=>
array(1) {
[0]=>
string(5) "false"
}
}
["namespaces"]=>
object(Auth_OpenID_NamespaceMap)#41 (3) {
["alias_to_namespace"]=>
object(Auth_OpenID_Mapping)#45 (2) {
["keys"]=>
array(1) {
[0]=>
string(14) "Null namespace"
}
["values"]=>
array(1) {
[0]=>
string(32) "http://specs.openid.net/auth/2.0"
}
}
["namespace_to_alias"]=>
object(Auth_OpenID_Mapping)#46 (2) {
["keys"]=>
array(1) {
[0]=>
string(32) "http://specs.openid.net/auth/2.0"
}
["values"]=>
array(1) {
[0]=>
string(14) "Null namespace"
}
}
["implicit_namespaces"]=>
array(0) {
}
}
["_openid_ns_uri"]=>
string(32) "http://specs.openid.net/auth/2.0"
}
If I insert a return true at the top of the function then OpenID will return a success value with correct credentials.
Any ideas?