diff --git a/trench/views/base.py b/trench/views/base.py index cd896413..eca5824e 100644 --- a/trench/views/base.py +++ b/trench/views/base.py @@ -73,16 +73,22 @@ def post(self, request: Request) -> Response: try: mfa_model = get_mfa_model() mfa_method = mfa_model.objects.get_primary_active(user_id=user.id) - get_mfa_handler(mfa_method=mfa_method).dispatch_message() - return Response( + dispatch_response = get_mfa_handler(mfa_method=mfa_method).dispatch_message() + return self._token_response( data={ "ephemeral_token": user_token_generator.make_token(user), "method": mfa_method.name, - } + }, + method=mfa_method, + dispatch_response=dispatch_response, ) except MFAMethodDoesNotExistError: return self._successful_authentication_response(user=user) + def _token_response(self, data, method, dispatch_response: DispatchResponse) -> Response + '''Hook to permit customising response content''' + return Response(data) + class MFASecondStepMixin(MFAStepMixin, ABC): def post(self, request: Request) -> Response: