2012-08-25 180 views
6

我正在構建一個燒瓶應用程序,並且我希望它僅在用戶通過身份驗證時才能提供一些靜態文件。這是一個非常低流量的應用程序(僅供內部使用)。我將如何去做這件事?我想到的一件事是使用serve_static(),並將其放在身份驗證檢查之後,但使用的是已經提供內容的靜態目錄。用燒瓶保護靜態文件

+0

你想真正的只針對*某些*靜態文件或做你想做的*所有*靜態認證文件(和/或整個應用程序)? –

+0

所有靜態文件。我已經對該應用程序進行了身份驗證,因此如果我可以針對該應用程序的活動會話進行檢查,那麼該應用程序將是完美的。 – marcog

回答

10

簡單地繼承flask.Flask並覆蓋send_static_file方法:

class SecuredStaticFlask(Flask): 
    def send_static_file(self, filename): 
     # Get user from session 
     if user.is_authenticated(): 
      return super(SecuredStaticFlask, self).send_static_file(filename) 
     else: 
      abort(403) 
      # Or 401 (or 404), whatever is most appropriate for your situation 

參見the definition of send_static_file及以下

+0

甜,這工作! – marcog

+0

該文件中似乎不再有857行。 –

+1

@JesseAldridge - 我已經修復了指向固定提交的鏈接。感謝您的領導! –