【发布时间】:2018-12-20 02:50:22
【问题描述】:
我是 Django Rest 和基于 JWT 令牌的身份验证的新手。
我正在使用一个名为djangorestframework_simplejwt的包
我创建了前端 UI 并成功验证了用户。
我有一个问题,当我创建一个新用户时,我将用户发送回响应数据,然后在一个承诺中点击身份验证端点以检索我的令牌。
这感觉不对,感觉像是后端可以完全处理的事情。
在前端 -
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
}
});
}
在我的后端,我有一个用户视图集和序列化程序,并且使用 django rest 框架简单的 JWT 包,我有一个端点 api/token/ ,它接收用户并返回他们的身份验证令牌。
我想创建用户并在创建后点击后端的端点,但我不完全确定这样做的最佳方式。我尝试从我的用户视图集中的身份验证视图集继承,但未能成功地将发布请求传递给它。
这是我的用户视图集
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)
在此先感谢您提供任何帮助/指导。
【问题讨论】:
标签: django django-rest-framework