2010-12-06 28 views
2

J'essaie d'utiliser DNOA pour le support OpenId de mon application, afin de quitter la solution Janrain que j'ai utilisée jusqu'à présent. Le problème est que les utilisateurs que j'ai jusqu'à présent ont des identifiants basés sur le profil (https: //www.google.com/profiles/11223344556677 ...), tandis que l'identifiant récupéré par DNOA est sous la forme https://www.google.com/accounts/o8/id?id=xxxxxyyyyyafgsdgfsdhg.Comment récupérer un profil google avec DotNetOpenAuth?

Comment puis-je récupérer les informations de profil? Grâce à l'échange d'attributs? et quel attribut? Ou y a-t-il une autre API? J'ai vu que la page de connexion a un fournisseur pour google et un autre pour google profile, donc quelqu'un ici a une réponse ... :)

Mettre à jour: le point de terminaison pour les profils google est (https: // www.google.com/profiles/)

... Alors la question est maintenant plutôt comment obtenir le numéro d'identification du profil google

Répondre

3

le numéro d'identification du profil google est récupéré par le « http: // schémas. openid.net/ax/api/user_id "attribut. Réglez ce paramètre nécessaire

En 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"); 

chose drôle est que, si je laisse de côté certains de ces attributs, je ne rentre pas IPV/user_id. Impossible de comprendre cette partie, mais je ne me soucie pas vraiment à ce stade.

0

Google a en ce moment 2 fournisseurs (peut-être plus) openid - des comptes et des profils. Je ne sais pas vraiment pourquoi il y en a 2 mais tous les propriétaires de compte Google n'ont pas de profil Google.

Il y a aussi une grande différence entre les deux. L'identifiant openid de Google Profiles est le même partout où vous l'utilisez. L'identifiant de compte Google ne l'est pas! Lorsque vous vous connectez avec des comptes Google en tant que fournisseur OpenID, vous obtenez un identifiant différent pour chaque domaine. C'est une nouvelle fonctionnalité (facultative, je pense) d'OpenID, mais je ne me souviens pas de son nom en ce moment.

Avec tout cela, je ne pense pas que Google va vous donner des données que l'identifiant de compte Google corrèle à l'identifiant de Google Profils.

Espérons que cela aide de quelque façon que ce soit.

+0

bon point sur la non-unicité de l'ID de comptes. En dehors de cela, comme je l'ai dit plus haut, l'identifiant Profiles est récupéré via l'attribut "http://schemas.openid.net/ax/api/user_id". – ghallas