2

我知道如何为美味派资源设置身份验证/授权:通过资源 Meta 类中的设置。我如何验证/授权对顶级架构的访问?

例如,我可以在 处验证/授权资源/api/v1/resource,但如何在 处验证/授权架构/api/v1

4

2 回答 2

5

默认情况下,使用美味派的默认机制并没有简单的方法来做到这一点。如果您查看api.py文件,您将看到该top_level方法没有应用身份验证/授权机制。

我认为实现您想要的最简洁的方法是扩展 Api 类并覆盖该top_level方法以检查是否允许用户查看结果。然而,这可能过于复杂,因为 Api 本身不使用自动化和身份验证方法。因此,您可能希望通过删除top_level那里的定义并将其放在资源中的 urls 中来覆盖 Api 的 urls 方法。

于 2012-09-09T14:41:32.040 回答
2

我也必须解决这个问题。这是 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())
...
于 2013-02-28T19:59:15.187 回答