diff --git a/apps/authorization/views/common.py b/apps/authorization/views/common.py index 84ed378f..d2d147d0 100644 --- a/apps/authorization/views/common.py +++ b/apps/authorization/views/common.py @@ -81,14 +81,8 @@ class JWTViewMixin(generics.GenericAPIView): def _handle_cookies(self, request, access_token, refresh_token): """ CHECK locale in cookies and PUT access and refresh tokens there. - _cookies it is list that contain tuples. - _cookies would contain key, value and secure parameters. - i.e. - [ - (locale, 'ru-RU', True), # Key, Value, Secure flag - ('access_token', 'token', True), # Key, Value, Secure flag - ('refresh_token', 'token', True), # Key, Value, Secure flag - ] + cookies it is list that contain namedtuples + cookies would contain key, value and secure parameters. """ cookies = list() COOKIE = namedtuple('COOKIE', ['key', 'value', 'secure']) @@ -126,7 +120,7 @@ class JWTViewMixin(generics.GenericAPIView): # Serializers # Sign in via Facebook -class OAuth2SignUpView(OAuth2ViewMixin, generics.GenericAPIView): +class OAuth2SignUpView(OAuth2ViewMixin, JWTViewMixin): """ Implements an endpoint to convert a provider token to an access token @@ -153,7 +147,7 @@ class OAuth2SignUpView(OAuth2ViewMixin, generics.GenericAPIView): return token def post(self, request, *args, **kwargs): - """Override POST method""" + # Preparing request data serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) @@ -177,21 +171,14 @@ class OAuth2SignUpView(OAuth2ViewMixin, generics.GenericAPIView): token = self.get_jwt_token(user=user, access_token=body.get('access_token'), refresh_token=body.get('refresh_token')) - response = Response(data={'refresh': str(token), - 'access': str(token.access_token)}, + refresh_token = str(token) + access_token = str(token.access_token) + response = Response(data={'refresh_token': refresh_token, + 'access_token': access_token}, status=status.HTTP_200_OK) - if 'locale' in request.COOKIES: - # Write locale in cookie - key, value = 'locale', request.COOKIES.get('locale') - response.set_cookie(key=key, value=value) - # Write to cookie access and refresh token with secure flag - response.set_cookie(key='access_token', - value=serializer.data.get('access_token'), - secure=True) - response.set_cookie(key='refresh_token', - value=serializer.data.get('refresh_token'), - secure=True) - return response + return self._put_cookies_in_response( + cookies=self._handle_cookies(request, access_token, refresh_token), + response=response) # JWT