我正在尝试使用DNOA对我的应用程序进行OpenId支持,以便离开我目前使用的Janrain解决方案。问题是我到目前为止的用户都有基于个人资料的标识符(https://www.google.com/profiles/11223344556677 ...),而DNOA检索到的标识符的格式为https://www.google.com/accounts/o8/id?id=xxxxxyyyyyafgsdgfsdhg。< / p>
如何检索个人资料信息?通过属性交换?哪个属性?或者是否有其他API?我看到登录页面有谷歌提供商和谷歌个人档案的不同提供者,所以这里有人有答案...... :)
更新:Google个人资料的终端是(https://www.google.com/profiles/)
所以......现在的问题是如何获取谷歌个人资料ID号
答案 0 :(得分:3)
通过“http://schemas.openid.net/ax/api/user_id”属性检索Google个人资料ID号。将其设置为必需
在DNOA中,
var fetch = new FetchRequest();
fetch.Attributes.AddRequired("http://axschema.org/contact/country/home");
fetch.Attributes.AddRequired("http://axschema.org/contact/email");
fetch.Attributes.AddRequired("http://axschema.org/namePerson/first");
fetch.Attributes.AddRequired("http://axschema.org/namePerson/last");
fetch.Attributes.AddRequired("http://axschema.org/pref/language");
fetch.Attributes.AddRequired("http://schemas.openid.net/ax/api/user_id");
有趣的是,如果我省略其中一些属性,我就不会得到api / user_id。
无法想出这一部分,但我现在并不在意。
答案 1 :(得分:0)
两者之间也存在很大差异。 Google个人资料openid标识符与您使用它的地方相同。 Google帐户ID不是!使用Google帐户作为OpenID提供程序登录时,您将获得每个域的不同ID。这是OpenID的一个新的(可选的,我认为)功能,但我现在不记得它的名字了。
尽管如此,我认为Google不会向您提供任何Google帐户标识符与哪些Google个人资料标识符相关的数据。
希望这会有所帮助。