Python google apps engine 1.8中的用户类

Python google apps engine 1.8中的用户类,python,google-app-engine,email,Python,Google App Engine,Email,升级到最新的python gae-1.8后,我在上遇到以下错误: AttributeError:“NoneType”对象没有属性“email” 同样的代码在dev服务器上运行良好 实际代码为: entity.username=users.GetCurrentUser().email() 我尝试了原始的get\u current\u user()函数,但得到了相同的结果 该应用程序不是公开的。它已配置为仅在特定应用程序域中工作。而且它在1.7.5版本上运行良好 我只使用一个帐户来避免多个帐户的问题

升级到最新的python gae-1.8后,我在上遇到以下错误:

AttributeError:“NoneType”对象没有属性“email”

同样的代码在dev服务器上运行良好

实际代码为:

entity.username=users.GetCurrentUser().email()

我尝试了原始的
get\u current\u user()
函数,但得到了相同的结果

该应用程序不是公开的。它已配置为仅在特定应用程序域中工作。而且它在1.7.5版本上运行良好

我只使用一个帐户来避免多个帐户的问题


感谢您的帮助。

获取当前用户()的文档说

get_current_user()返回当前用户(当前用户)的用户对象 发出正在处理的请求的用户)如果该用户已登录, 如果用户未登录,则为“无”

如果您的错误是
AttributeError:“NoneType”对象没有属性“email”
,则用户未登录,且呼叫未返回任何属性


我在一个特定的应用程序域中使用auth,一切正常。因此,我不认为这是一般运行时(1.8.0)问题。

感谢Tim的快速响应。不可能返回None,因为该应用程序仅对特定域应用程序用户开放,因此,他们应该在使用它之前登录。请注意不要说None是不可能的;-)你没有得到任何回报,很明显这是可能的。如何阻止对受保护URL的请求?您如何保护/保护URL以确保用户登录?谢谢。是,它返回None:)。我通过从应用程序设置中的身份验证类型中选择Google Apps domain来保护登录。然后将该应用程序添加到与Google Market相同的Google Apps服务中。这种方式将应用程序限制为仅对特定GA域可用,因此,无需检查有效用户,因为他们必须在访问应用程序之前登录到该域。嗯,我不认为有任何东西特别阻止用户在不首先登录的情况下访问URL(除非你在app.yaml中有
login:required
。尝试在chrome中使用匿名模式,在不登录的情况下访问应用的URL。如果get_current_user()返回无,你可能应该检查get_current_user()的状态,然后将浏览器重定向到create_login_URL()的结果)将dest_url设置为刚才尝试的url。我添加了以下代码以检查是否存在任何错误:
如果不是用户。GetCurrentUser():users.CreateLoginURL('/')
用户登录时它不返回任何内容。然后将CreateLoginURL()替换为
self.response.write('error')
。它返回了“error”。