使用OpenID身份验证,这是正确的User实例方法,以获取用于在Datastore上创建和标识用户的唯一标识符作为key_name?
可用方法:
nickname()对于OpenID用户,昵称是OpenID标识符。
federated_identity()返回用户的OpenID标识符。
federated_provider()返回用户的OpenID提供程序的URL。
在用户登录时,我想通过以下方式检索它:
User.get_by_key_name(key_used_to_create_the_user)
答案 0 :(得分:2)
您可能希望在系统中生成自己的用户ID,以便用户可以更改其OpenID提供程序(或者甚至有多个OpenID与其帐户关联,许多网站都支持该帐户)。但是如果你因某种原因确实想要将OpenID用作唯一键,我认为federated_identity()
就是你想要的那个(只是从阅读文档,我从未使用过这个库)。您需要完整的OpenID URL,保证其唯一性 - 这包括URL的提供者部分和“用户名”部分(可能是“子文件夹”或子域等)。抱歉,我忘记了技术术语......自从我使用OpenID以来已经有一段时间了。