【问题标题】:TastyPie - Override_urls ignores Authentication and AuthorizationTastyPie - Override_urls 忽略身份验证和授权
【发布时间】:2012-08-03 08:53:05
【问题描述】:

我有以下资源:

class MyUserResource(resources.MongoEngineResource):

    class Meta:
        ...
        authentication = MyKeyAuthentication()
        authorization = ApiKeyAuthorization()

    def override_urls(self):
        return [...] 

所有标准的 API 调用都通过身份验证和授权进行路由。 但所有自定义函数/url(在我的 override_urls 中)都会忽略 auth/auth 函数...

有什么想法吗?

编辑:

也许问题在于调度程序没有被调用。问题仍然是为什么会这样……以及如何改变这种行为!

【问题讨论】:

    标签: django api url tastypie


    【解决方案1】:

    好的,最后我发现在自定义/覆盖我的网址时,我还覆盖了调用wrap_view 的标准行为。这会导致不调用负责检查auth 方法的dispatch

    所以我只是将auth-checks 手动放入我的每个函数中(像这样):

    self.is_authenticated(request)
    self.is_authorized(request)
    

    希望这可以帮助其他绝望的美味开发者:)

    【讨论】:

    • 遇到了这个!非常感谢!
    • is_authorized 函数不再存在,对此问题感兴趣的人应该在这里查看调度函数的工作原理:github.com/toastdriven/django-tastypie/blob/master/tastypie/… 并根据他们的需要调整过程。
    • 在方法的开头添加 self.throttle_check(request); self.method_check(request, allowed=["post"]) 和在末尾添加 self.log_throttled_access(request) 可能会使其完成
    猜你喜欢
    • 2014-11-13
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    相关资源
    最近更新 更多