我正在编写一个Cordova(PhoneGap)应用程序,该应用程序使用Google App Engine后端进行登录和数据库。 Google App Engine似乎可以处理应用程序中的所有URL,但这不是Cordova的工作方式。我正在使用users.create_login_url()
将用户定向到Google的登录页面。此函数的第一个参数是重定向URL到完整URL或相对于应用程序的位置。我可以输入'/home'
或某些网址,例如'http://google.com'
,但我希望应用程序重定向回用户单击按钮登录时我所在的Cordova页面。我输入了'http://localhost'
,但我不确定这是否会按照我期望的方式运行。这会起作用吗,还是我需要做别的事?
基本上,我使用jQuery.ajax()生成登录请求:
$.ajax({
type:'POST',
url:'http://localhost:8090/login', //I am running this in the GAE developer runtime
success:function(data) {
window.location = data;
}
});
上面的代码应该调用我在GAE中创建的Login类中的post()方法。该方法中的代码执行此操作:
def post(self):
user = users.get_current_user()
if user:
self.response.write("userAlreadyLoggedIn")
else:
self.response.write(users.create_login_url("http://localhost")
我还没有测试过这个,但忽略了我可能遇到的任何无关的错误,这会做我上面描述的吗?
答案 0 :(得分:0)
您需要重定向,然后将登录URL写入响应对象。
self.redirect("/home")
https://developers.google.com/appengine/docs/python/tools/webapp/redirects
另外,webapp2文档值得一看:
http://webapp-improved.appspot.com/api/webapp2.html#webapp2.redirect