Google App Engine与带重定向和HTTP POST的Google身份验证
我有一个表单,需要把内容发送到服务器。
我使用谷歌认证,因为只有经过授权的人才能发送数据到服务器。
这个表单大概是这样的:
<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 个回答
3
不,POST数据不能跟着HTTP重定向一起走。
在你展示这个表单之前,几乎可以肯定你应该先检查用户是否已经登录。不过,一旦用户到了这个表单,最好的办法可能是把内容保存到一个和你生成的会话ID相关的数据库里,然后要么把它设置为一个cookie,要么把它加到重定向的链接里,这样当用户从登录页面返回时,你就可以再次取出这些数据。