When authenticating with OpenID I am afaict supposed to use the claimed identifier as a key to uniquely identify a specific user. The problem I am having with this is either two independent bugs or a misunderstanding of the spec :).
When using node openid I would expect these two URLs to result in the same claimed_id:
- http://{username}.myopenid.com/
- http://www.myopenid.com/xrds?username={username}.myopenid.com
However, those URLs result in two different claimed_ids:
- http://{username}.myopenid.com/
- http://www.myopenid.com/xrds?username={username}.myopenid.com
both being the URLs mentioned. To verify this behaviour I decided to check out a different OpenID library, Python OpenID. Using the same two URLs I still get two claimed_ids, but in this case they’re different, now I get:
So, I guess my questions is, am I right in assuming the claimed_ids should be used as identifiers and that the above URLs should result in the same claimed_id?
There’s no reason they should result in the same claimed id and in fact you offer nothing in support of that expectation.
However, it should be noted that the first library uses a wrong value for the claimed id (emphasis mine):
And for the second URL you have this response (some headers removed):
Therefore
http://{username}.myopenid.com/xrdsshould be used.