When I look at the source of a profile page like https://<connections-host>/profiles/html/profileView.do?userid=98A10FD8-FCC3-5DD7-C125-6A9B0055D8C8
I see two kind of ids in the page source:
profilesData.displayedUser = {
key: "7a74e3bf-6cf4-40cd-a593-801275661353",
dn: "<dn>",
displayName: "Alice Someone",
userid:"98A10FD8-FCC3-5DD7-C125-6A9B0055D8C8",
// ...
};
userid
seems like a regular GUID for the user, that's clear for me. But why do we have an additional key
attribute? It also looks like another GUID but lowercase.
The reason why I'm asking is: IBM's User API asks for a key
attribute, e.g. /profiles/atom/profileEntry.do?key=7a74e3bf-6cf4-40cd-a593-801275661353
. We can also call /profiles/atom/profileEntry.do?userid=98A10FD8-FCC3-5DD7-C125-6A9B0055D8C8
, altough this is not official documentated.
Can someone explain why we have two ids? And what is the reason for using key
instead of userid
here? It disagrees the concept of an id to be unique.
Connections is built from several different apps with different databases (People, Blogs, Homepage, ....). Each DB has its own user table with their own keys. The second id is the userid, which should be the same across all DBs.
In your example, the key refers to the peopledb. It's only valid in the profiles app. The Userid is valid accross all connections apps.