将User.user_id()转换为User.email()

时间:2010-04-22 17:16:27

标签: google-app-engine

有没有办法在给定user_id的情况下派生用户的电子邮件?

3 个答案:

答案 0 :(得分:1)

您可以在电子邮件和user_id之间建立关系,然后根据需要进行检索。如果用户已登录,则可以单独轻松访问这两个属性。 http://code.google.com/intl/en/appengine/docs/python/users/userclass.html

答案 1 :(得分:1)

然而,user_id不是可以使用某种算法重建的电子邮件的散列版本。

答案 2 :(得分:0)

似乎无法从用户ID派生电子邮件。如果要从user_id转到电子邮件,则必须在用户登录时存储,然后在用户未登录时进行转换查找。例如。

class Email(db.model):
  '''keyed by user_id'''
  email=db.EmailProperty()

def save_user():
  u=users.get_current_user()
  k=db.Key.from_path('Email',u.user_id())
  e=Email.get(k)
  if not e:
    Email(key=k, email=u.email()).put()

def get_email_from_user_id(id):
  '''No way to derive email without a lookup.'''
  k=db.Key.from_path('Email',id)
  return Email.get(k).email # raises exception if email is not found