我不希望我的客户端记录两次(SSO行为),所以我添加了
呼叫前$openid->mode=checkid_immediate
header...$openid->authUrl()
。
我无法收到电子邮件,lang ...属性。
实际上,使用checkid_immediate模式并使用authUrl()
我按照预期正确连接了用户。
但是修改代码并添加$openid->required
以收集属性
在authUrl()
请求之前强制将我的呼叫转换为checkid_setup
模式
调用
如何在一次通话中保持checkid_immediate模式并获取我的属性?
subdomain.mydomain2.com
代码的行为与www.mydomain1.com
不同
www.mydomain1.com
与checkid_immediate
一起运作正常。
具有相同代码的subdomain.mydomain2.com
会转换为checkid_setup
来电。
如何使checkid_immediate
模式的子域名与www不同?
问题#2自行解决了!清除缓存并重新启动Google Chrome后
提前致谢。
答案 0 :(得分:1)
从0.5开始,authUrl方法有一个可选的bool参数来立即检查。尝试:
if (!$openid->mode && !empty($storedIdentity)) {
$openid->identity = $storedIdentity;
$openid->required = array('contact/email', 'pref/language');
header('Location: ' . $openid->authUrl(true));
}
*编辑代码示例以包含问题的请求属性。 这假设$ storedIdentity是先前从checkid_setup返回的标识网址。