Google App Engine:反向代理+ OpenID,用户在登录后被重定向到appspot域

Kev*_*n P 7 python google-app-engine

我正在使用反向代理在自定义域上启用ssl.代理在公共页面上正常工作,但是当用户尝试访问login_required目录时,登录URL会在登录后将其转移到我的appspot域.

有没有办法让用户保持自定义域名?

这是我的登录处理程序:

class OpenIDLoginHandler(webapp.RequestHandler):
    def get(self):
        domain = self.request.get('domain')
        continue_url = self.request.GET.get('continue')

        if not continue_url:
            continue_url = 'https://my_domain/login_required_directory/'    

        if domain:
            self.redirect(users.create_login_url(dest_url=continue_url,
                _auth_domain=None,federated_identity=domain))
        else:               
            login_url = users.create_login_url(dest_url=continue_url,
                federated_identity='https://www.google.com/accounts/o8/id')         
            self.redirect(login_url)

application = webapp.WSGIApplication(
                     [                                       
                         ('/_ah/login_required', OpenIDLoginHandler)],
                     debug=True)    

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

我已经尝试在users.create_login_url调用中覆盖目标url - 该函数仍然返回一个login_url,其中appspot域为'continue'参数,如下所示:

"https://开头appspot_domain/_ah/login_redir ClaimID的= HTTPS:?//www.google.com/accounts/o8/id&continue=https:// appspot_domain"

我尝试简单地重写返回的login_url并将'continue'参数替换为我的自定义域,但这导致404错误.

有什么想法吗?

提前致谢!

mik*_*ike 1

我不确定这是否适合您,但应用程序引擎的下一个版本声称支持自定义域上的 ssl (http://code.google.com/appengine/business/)。如果您的应用程序暂时不会投入生产,也许等到他们正式添加支持会更容易。它们的发布周期似乎约为 3 个月 (http://code.google.com/appengine/docs/revision_history.html)