I'm trying to get token on client side and send it to server like, but it always gives me the same error: Invalid token:
class ObtainAuthToken(APIView):
throttle_classes = ()
permission_classes = ()
parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
renderer_classes = (renderers.JSONRenderer,)
serializer_class = AuthTokenSerializer
model = Token
# Accept backend as a parameter and 'auth' for a login / pass
def post(self, request, backend):
serializer = self.serializer_class(data=request.DATA)
if backend == 'auth':
if serializer.is_valid():
token, created = Token.objects.get_or_create(user=serializer.object['user'])
#return Response({'token': token.key})
return "debug"
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
#return 'BAD'
else:
# Here we call PSA to authenticate like we would if we used PSA on server side.
user = register_by_access_token(request, backend)
#user = None
# If user is active we get or create the REST token and send it back with user data
if user and user.is_active:
token, created = Token.objects.get_or_create(user=user)
return Response({'id': user.id , 'name': user.username, 'userRole': 'user','token': token.key})
#return "msg"
@strategy()
def register_by_access_token(request, backend):
backend = request.strategy.backend
auth = get_authorization_header(request).split()
if not auth or auth[0].lower() != b'token':
msg = 'No token header provided.'
return msg
if len(auth) == 1:
msg = 'Invalid token header. No credentials provided.'
return msg
access_token=auth[1]
user = backend.do_auth(access_token)
"""
user = request.user
user = backend.do_auth(
access_token=request.GET.get('access_token'),
user=user.is_authenticated() and user or None
)
"""
return user
Edit: wrapped code in three-tics to style it
I'm trying to get token on client side and send it to server like, but it always gives me the same error: Invalid token:
Edit: wrapped code in three-tics to style it