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):
|
def _handle_cookies(self, request, access_token, refresh_token):
|
||||||
"""
|
"""
|
||||||
CHECK locale in cookies and PUT access and refresh tokens there.
|
CHECK locale in cookies and PUT access and refresh tokens there.
|
||||||
_cookies it is list that contain tuples.
|
cookies it is list that contain namedtuples
|
||||||
_cookies would contain key, value and secure parameters.
|
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 = list()
|
cookies = list()
|
||||||
COOKIE = namedtuple('COOKIE', ['key', 'value', 'secure'])
|
COOKIE = namedtuple('COOKIE', ['key', 'value', 'secure'])
|
||||||
|
|
@ -126,7 +120,7 @@ class JWTViewMixin(generics.GenericAPIView):
|
||||||
|
|
||||||
# Serializers
|
# Serializers
|
||||||
# Sign in via Facebook
|
# 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
|
Implements an endpoint to convert a provider token to an access token
|
||||||
|
|
||||||
|
|
@ -153,7 +147,7 @@ class OAuth2SignUpView(OAuth2ViewMixin, generics.GenericAPIView):
|
||||||
return token
|
return token
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
"""Override POST method"""
|
|
||||||
# Preparing request data
|
# Preparing request data
|
||||||
serializer = self.get_serializer(data=request.data)
|
serializer = self.get_serializer(data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
|
|
@ -177,21 +171,14 @@ class OAuth2SignUpView(OAuth2ViewMixin, generics.GenericAPIView):
|
||||||
token = self.get_jwt_token(user=user,
|
token = self.get_jwt_token(user=user,
|
||||||
access_token=body.get('access_token'),
|
access_token=body.get('access_token'),
|
||||||
refresh_token=body.get('refresh_token'))
|
refresh_token=body.get('refresh_token'))
|
||||||
response = Response(data={'refresh': str(token),
|
refresh_token = str(token)
|
||||||
'access': str(token.access_token)},
|
access_token = str(token.access_token)
|
||||||
|
response = Response(data={'refresh_token': refresh_token,
|
||||||
|
'access_token': access_token},
|
||||||
status=status.HTTP_200_OK)
|
status=status.HTTP_200_OK)
|
||||||
if 'locale' in request.COOKIES:
|
return self._put_cookies_in_response(
|
||||||
# Write locale in cookie
|
cookies=self._handle_cookies(request, access_token, refresh_token),
|
||||||
key, value = 'locale', request.COOKIES.get('locale')
|
response=response)
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# JWT
|
# JWT
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user