我有一個用金字塔/ cornice編寫的RESTful API。它爲Ember客戶端提供了一個API。使用檐口的簡單身份驗證和ACL
我跟着cornice tutorial,並有一個valid_token
驗證器,我在許多視圖上用作資源類的方法。
def valid_token(request):
header = 'Authorization'
token = request.headers.get(header)
if token is None:
request.errors.add('headers', header, "Missing token")
request.errors.status = 401
return
session = DBSession.query(Session).get(token)
if not session:
request.errors.add('headers', header, "invalid token")
request.errors.status = 401
request.validated['session'] = session
現在我想開始有選擇地保護資源。 The Pyramid way似乎是註冊認證/授權策略。 ACLAuthorizationPolicy
似乎提供了對金字塔中漂亮的ACL工具的訪問。但是,似乎金字塔需要身份驗證和授權策略才能發揮作用。由於我使用驗證器進行驗證,所以令我困惑。
我可以使用ACL來控制授權,同時使用我的檐口驗證valid_token
驗證程序嗎?我是否需要註冊金字塔認證或授權策略?
我有點困惑,幾乎沒有在金字塔中使用ACL的經驗。
所以你的建議是避免使用檐口驗證器進行身份驗證? –
我正在努力。看起來我需要推出我自己的AuthenticationPolicy,SessionAuthenticationPolicy似乎不適合於在每個請求上進行授權時。 –