Bonjour,
J'ai un front en React et un back avec Django
Pour le connexion, j'utilise le module django-rest-framework-simplejwt pour générer un token
Ce package fournit une API refreshToken qui renvoie un nouveau Token.
Je voudrais également renvoyer le token et les infos de l'utilisateur connecté
Voici ce que j'ai fait :
Mon serializer
La vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 class MyTokenRefreshSerializer(serializers.Serializer): token = TokenRefreshSerializer() user = UserSerializer()
Voici l'erreur retourné à l'exécution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 class MyTokenRefreshView(TokenRefreshView): serializer_class = MyTokenRefreshSerializer def post(self, request, *args, **kwargs): refreshToken = request.data serializerRefresh = TokenRefreshSerializer(data=refreshToken) if (serializerRefresh.is_valid()): #Je récupère le token et les infos de l'utilisateur à partir de celui-ci validated_token = JWTTokenUserAuthentication.get_validated_token(self,serializerRefresh.validated_data.get('access')) userId = JWTTokenUserAuthentication.get_user(self,validated_token) user = User.objects.get(pk=userId.pk) serializer = UserSerializer(user) data = OrderedDict([('token',refreshToken),('user',user)]) tokenRefreshCustomSerializer = MyTokenRefreshSerializer(data=data) if (tokenRefreshCustomSerializer.is_valid()): return Response(tokenRefreshCustomSerializer.validated_data) return Response(tokenRefreshCustomSerializer.errors)
Est ce que je suis parti sur la bonne voie pour retourner mon token et les infos utilisateur ? Si oui, que dois-je faire pour corriger l'erreur ? Sinon, comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 { "user": { "non_field_errors": [ "Invalid data. Expected a dictionary, but got User." ] } }
Merci pour votre aide
Partager