Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的python GAE create\u login\u url会将用户重定向到google设置个人信息页面_Python_Google App Engine_Redirect_Jinja2 - Fatal编程技术网

为什么我的python GAE create\u login\u url会将用户重定向到google设置个人信息页面

为什么我的python GAE create\u login\u url会将用户重定向到google设置个人信息页面,python,google-app-engine,redirect,jinja2,Python,Google App Engine,Redirect,Jinja2,我像以前一样使用create\u login\u url,将create\u login\u url(我的应用程序的任何url)的结果放入javascript块,以便页面可以使用它。这在本地很有效,在我相信之前也很有效 然而,我昨天刚刚发现,谷歌账户会将用户重定向到https://www.google.com/settings/personalinfo而不是用户登录后我提供的url 它返回的登录url如下:, https://www.google.com/accounts/ServiceLogi

我像以前一样使用
create\u login\u url
,将
create\u login\u url(我的应用程序的任何url)
的结果放入javascript块,以便页面可以使用它。这在本地很有效,在我相信之前也很有效

然而,我昨天刚刚发现,谷歌账户会将用户重定向到
https://www.google.com/settings/personalinfo
而不是用户登录后我提供的url

它返回的登录url如下:,
https://www.google.com/accounts/ServiceLogin?service=ah&被动=真实&;继续=https://appengine.google.com/_ah/conflogin%3Fcontinue%3Dhttp://name.of.my.project.appspot.com/&ltmpl=gm&;shdf=ChULEgZhaG5hbWUaCWd1ZXNzMjAxNAwSAmFoIhSWGiv4SgCRz7RQd7\u b7shxZMaj\u CgBMhT1jp44vsCkuJhUxaZgPHWB4Z\u 2TQ

看起来google帐户会将用户重定向到
appengine.google.com/\u ah/conflogin
,然后conflogin页面会将用户重定向到我的应用程序页面

我试图直接连接到appengine.google.com/_ah/conflogin,但返回了500个错误

最终我锁定了金甲2号,这对我来说是不必要的。反正我可以把它关掉


谢谢

使用
flask.Markup
包裹字符串,使其不会被转义

from flask import Markup
#...
def main():
    #...
    login_url = Markup(users.create_login_url(any_url_of_my_app))
    #...
    return render_template(template_file_name, login_url=login_url)

使用这个
login\u-url
作为
render\u-template
我在Django中遇到了同样的问题,同样,将
autoescape=False
添加到
Context
将解决这个问题

def home(request):
  context = Context({
    'login_url': users.create_login_url('/')
  }, autoescape=False)

  template = loader.get_template('index.html')
  return HttpResponse(template.render(context))