使用重定向和HTTP POST的Google App Engine和Google身份验证

时间:2009-10-28 16:42:24

标签: python google-app-engine authentication post

我有一个表单,我需要将内容发送到服务器。

我使用谷歌身份验证,因为只有经过授权的人才能发送到服务器。

表格是这样的:

<form action="/blog/submit" method="post">
...
</form>

仅在提交期间需要身份验证,而不是进入表单页面。所以在提交控制器中我使用了这样的东西:

class SubmitPage(webapp.RequestHandler):
    def post(self):
        if users.get_current_user() is None:
            self.redirect(users.create_login_url(self.request.uri))
            ...

问题是重定向中的返回网址仅在HTTP GET上执行,而不是我想要的HTTP POST。

我想验证然后重定向到提交页面(POST),但它尝试在同一个网址上执行GET。

可以实现我想要的吗?

1 个答案:

答案 0 :(得分:3)

不,POST数据不可能遵循HTTP重定向。

在显示首先发布此数据的表单之前,您几乎肯定要检查登录,但是一旦用户访问表单,您最好的选择可能是将内容保存到链接到会话的数据存储区您生成的ID,并将其设置为cookie或将其添加到重定向URI,以便在用户从登录页面返回时再次检索它。