version 0.0.7.1: fixed endpoint for authentication via facebook
This commit is contained in:
parent
e830e30c90
commit
f3b17bf1d0
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user