2

我正在尝试使用 DNOA 为我的应用程序提供 OpenId 支持,以便离开我迄今为止一直在使用的 Janrain 解决方案。问题是我目前拥有的用户拥有基于个人资料的标识符(https://www.google.com/profiles/11223344556677...),而 DNOA 检索到的标识符格式为https://www.google .com/accounts/o8/id?id=xxxxxyyyyyafgsdgfsdhg

如何检索个人资料信息?通过属性交换?和哪个属性?还是有其他API?我看到登录页面有一个谷歌提供者和一个不同的谷歌个人资料提供者,所以这里有人有答案...... :)

更新:谷歌个人资料的端点是(https://www.google.com/profiles/)

所以......现在的问题是如何获取谷歌个人资料ID号

4

2 回答 2

3

谷歌配置文件 ID 号是通过“http://schemas.openid.net/ax/api/user_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。无法弄清楚那部分,但我现在不在乎。

于 2010-12-06T15:51:23.160 回答
0

Google 实际上有 2 个(也许更多)openid 提供者——帐户和个人资料。我真的不知道为什么有 2 个但所有 Google 帐户所有者都没有 Google 个人资料。

两者之间也有很大的不同。Google Profiles openid 标识符在您使用它的任何地方都是相同的。Google Accounts id 不是!当使用 Google 帐户作为 OpenID 提供商登录时,您将获得每个域的不同 ID。这是 OpenID 的一个新功能(我认为是可选的),但我现在不记得它的名字了。

尽管如此,我认为谷歌不会给你任何谷歌账户标识符与谷歌个人资料标识符相关的数据。

希望这对您有所帮助。

于 2010-12-06T15:52:22.207 回答