我知道如何为美味派资源设置身份验证/授权:通过资源 Meta 类中的设置。我如何验证/授权对顶级架构的访问?
例如,我可以在 处验证/授权资源/api/v1/resource
,但如何在 处验证/授权架构/api/v1
?
我知道如何为美味派资源设置身份验证/授权:通过资源 Meta 类中的设置。我如何验证/授权对顶级架构的访问?
例如,我可以在 处验证/授权资源/api/v1/resource
,但如何在 处验证/授权架构/api/v1
?
默认情况下,使用美味派的默认机制并没有简单的方法来做到这一点。如果您查看api.py文件,您将看到该top_level
方法没有应用身份验证/授权机制。
我认为实现您想要的最简洁的方法是扩展 Api 类并覆盖该top_level
方法以检查是否允许用户查看结果。然而,这可能过于复杂,因为 Api 本身不使用自动化和身份验证方法。因此,您可能希望通过删除top_level
那里的定义并将其放在资源中的 urls 中来覆盖 Api 的 urls 方法。
我也必须解决这个问题。这是 Anna 建议的代码示例:
class ApiWithAuth(Api):
def top_level(self, request, api_name=None):
auth = MyAuthentication()
r = auth.is_authenticated(request)
if r != True:
return r
return super(ApiWithAuth, self).top_level(request, api_name)
api = ApiWithAuth(api_name='v2')
api.register(MyResource())
api.register(MyOtherResource())
...