【发布时间】:2018-03-24 14:15:48
【问题描述】:
我正在基于django-rest-framework 的应用程序中进行(或多或少)自定义身份验证,我只需要调用另一个微服务来询问令牌是否有效以及与之关联的用户名/用户ID . (我没有供用户使用的本地表)。
没有找到开箱即用的解决方案,我将覆盖 dispatch 方法(我使用基于 APIView 的视图),我在其中向远程服务发出请求,如果响应不是200,我要返回403错误。
这是我的代码:
def dispatch(self, request, *args, **kwargs):
try:
user_info = user_from_token_in_request(request)
return super().dispatch(*args, **kwargs)
except:
return Response(
"No Auth Token provided or bad Auth Token"
status.HTTP_403_FORBIDDEN,
)
但是,当我传递一个无效的令牌时,我得到了这个错误:AssertionError: .accepted_renderer not set on Response,因为在处理dispatch 方法时响应上下文没有被初始化。
有没有一种更合适的方法?
【问题讨论】:
标签: django rest django-rest-framework