我有一个在线Quickbooks的请求,以实现正确的单点登录(SSO)流程。我正在使用openid4java并取回名字,姓氏和电子邮件地址,但没有领域ID。
我使用已发布的Intuit代码作为示例,我的fetcher看起来像这样: final FetchRequest fetch = FetchRequest.createFetchRequest();
try {
fetch.addAttribute("FirstName", "http://axschema.org/namePerson/first", true);
fetch.addAttribute("LastName", "http://axschema.org/namePerson/last", true);
fetch.addAttribute("Email", "http://axschema.org/contact/email", true);
fetch.addAttribute("RealmId", "http://axschema.org/intuit/realmId", true);
} catch (MessageException e) {
mLogger.warning(e.getLocalizedMessage());
e.printStackTrace();
}
我的身份验证请求如下:
openid.ns:http://specs.openid.net/auth/2.0
openid.claimed_id:http://specs.openid.net/auth/2.0/identifier_select
openid.identity:http://specs.openid.net/auth/2.0/identifier_select
openid.return_to:http://localhost:8888/qbopenid
openid.realm:http://localhost:8888/qbopenid
openid.assoc_handle:o5SH!IAAAACLd1tm9oBJwwIhLZnb4uHYSvphLvPKupx_kJsjquipfQQAAAAEgqUSt5DXPSGwQ79I7lFlHh8gGWpBFaXdjr6diKdticDtCpv8EgpBpO3lDHIhT-275K8lDxZWoeLxqABigxYjf
openid.mode:checkid_setup
openid.ns.ext1:http://openid.net/srv/ax/1.0
openid.ext1.mode:fetch_request
openid.ext1.type.FirstName:http://axschema.org/namePerson/first
openid.ext1.type.LastName:http://axschema.org/namePerson/last
openid.ext1.type.Email:http://axschema.org/contact/email
openid.ext1.type.RealmId:http://axschema.org/intuit/realmId
openid.ext1.required:FirstName,LastName,Email,RealmId
但是当返回请求时,我在请求中没有看到任何提及领域id的内容。它几乎就像失踪一样。知道什么是错的吗?谢谢!
答案 0 :(得分:2)
请参阅此处的说明:
只有在领域和应用程序之间存在活动连接时以及用户从App Center启动应用程序或从Blue Dot菜单导航到应用程序时,才能获取此字段。
您将在OAuth流程结束时返回领域,以将其与访问令牌相关联。它并不总是由OpenID返回。