![](/img/trans.png)
[英]Redirect *.appspot.com to custom domain: Google app engine (Django)
[英]Google App Engine: Reverse Proxy + OpenID, users being redirected to appspot domain after login
我正在使用反向代理在自定義域上啟用 ssl。 代理在公共頁面上工作正常,但是當用戶嘗試訪問 login_required 目錄時,登錄 url 在登錄后將它們轉移到我的 apppot 域。
有沒有辦法讓用戶留在自定義域中?
這是我的登錄處理程序:
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()
我已經嘗試在 users.create_login_url 調用中覆蓋目標 url - function 仍然返回一個 login_url,其中 apppot 域作為“繼續”參數,如下所示:
“https://appspot_domain/_ah/login_redir?claimid=https://www.google.com/accounts/o8/id&continue=https://appspot_domain”
我嘗試簡單地重寫返回的 login_url 並用我的自定義域替換“繼續”參數,但這導致了 404 錯誤。
有什么想法嗎?
提前致謝!
我不確定這是否適合您,但應用引擎的下一個版本聲稱支持自定義域 (http://code.google.com/appengine/business/) 上的 ssl。 如果您的應用程序暫時不會投入生產,那么等到他們正式添加支持會更容易。 它們似乎處於大約 3 個月的發布周期 (http://code.google.com/appengine/docs/revision_history.html)
您可以在 app.yaml 中使用通配符處理程序自己處理此問題,該處理程序將所有請求重定向到 ssl。 如果您不想以這種方式處理所有請求,則可以使用正則表達式來限制通配符。
app.yaml:
application: yourthing
version: 1
runtime: python
api_version: 1
handlers:
- url: .*
script: redirect_to_ssl.py
這還會清除可能來自鍵入 url 的用戶的任何非 https 請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.