簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM