我有一个用金字塔/ 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似乎不适合于在每个请求上进行授权时。 –