我正在为一个基于
找不到现成的解决方案后,我覆盖了
以下是我的代码:
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
方法时,响应上下文没有被初始化。
是否有一种更加适当的方法来解决这个问题?