如何将用户凭据传递给App Engine任务队列servlet?

时间:2015-04-15 01:13:54

标签: google-app-engine

假设您有通过Google帐户进行身份验证的用户在/运行时进入您的应用,然后您需要在该用户的默认任务队列中分离一些内容。现在,该用户的凭证不会转移到任务servlet(例如/ worker)。有没有办法通过它们?也许通过从orig请求中获取标头并将它们添加到任务队列请求中?

2 个答案:

答案 0 :(得分:-1)

如果您正在使用Java Servlet,则可以使用以下逻辑:

  • 成功登录后(使用Google+登录和终端),将用户凭据存储在HttpSession中作为属性(将Endpoint API中的HttpServletRequest作为参数放入,然后获取会话)。
  • 在您的servlet逻辑中,获取会话并检索凭证。

P.S。不要忘记在appengine-web.xml中设置<sessions-enabled>true</sessions-enabled>

答案 1 :(得分:-2)

将用户凭据从应用程序放入数据存储区,并从任务中的数据存储区中读取它们。

Python中使用ndb和oauth2client的示例用户模型:

from google.appengine.ext import ndb
from oauth2client import appengine

class User(ndb.Model):
    # among other user props
    credentials = appengine.CredentialsNDBProperty()