djangorestframework_simplejwt
我已经创建了我的前端用户界面并成功地验证了用户。
我有一个问题,当我创建一个新用户时,我将用户发送回响应数据中,然后在一个承诺中命中身份验证端点以检索我的令牌。
这感觉不对劲,感觉像是后端可以完全处理的事情。
在前端-
return APIUtil.signup(user).then((user) => {
return APIUtil.authenticate(user.data)
}).then((user) => dispatch(authenticateUser(user)))
export const authenticate = (user) => {
return axios({
method: 'post',
url: 'http://localhost:8000/api/token/',
data: {
username: user.username,
password: user.password
}
});
}
export const signup = (user) => {
return axios({
method: 'post',
url: 'http://localhost:8000/signup/',
data: {
username: user.username,
password: user.password,
email: user.email
}
});
}
我想创建一个用户,在创建之后,在后端点击该端点,但我不完全确定这样做的最佳方式。我尝试从用户viewset中的auth viewset继承,但未能成功地向其传递post请求。
class UserViewSet(ModelViewSet):
model = User
queryset = model.objects.all()
serializer_class = serializers.UserSerializer
permission_classes = ([])
authentication_classes = ([])
def create(self, request, format=None):
user = serializers.UserSerializer(data=request.data,context={'request': request})
if user.is_valid():
new_user = user.save()
new_user.password = request.data['password']
return Response({'username': new_user.username, 'password': new_user.password}, status=status.HTTP_201_CREATED)
else:
return Response(user.errors, status=status.HTTP_400_BAD_REQUEST)
提前感谢您的帮助/指导。