我有几个关于令牌和用户名/密码对的问题。Django安全和身份验证
我有一个Django的休息API建立它使用令牌一旦用户注册。不过,我不知道如何将令牌返回给用户的安全问题?目前我使用:
response_data = UserSerializer(instance=new_user).data response_data['token'] = token.key return Response(response_data, status=status.HTTP_201_CREATED)
但这种方式我可以清楚地看到所有的细节在我的身体反应在浏览器?甚至我的密码。我应该如何将其退还给客户?
当登记用户本人做这种方式:
系列化= UserSerializer(数据= request.DATA) 如果serialized.is_valid(): 打印(串行化.validated_data) new_user = get_user_model()。objects.create(** serialized.validated_data) 令牌= Token.objects.create(用户= new_user)
这是否会正确地创建我的用户?密码会被散列吗?
谢谢
P.S.这里是整个方法:
@api_view(['POST'])
def register_user(request):
print (request)
serialized = UserSerializer(data=request.DATA)
if serialized.is_valid():
print(serialized.validated_data)
new_user = get_user_model().objects.create(**serialized.validated_data)
token = Token.objects.create(user=new_user)
response_data = UserSerializer(instance=new_user).data
response_data['token'] = token.key
return Response(response_data, status=status.HTTP_201_CREATED)
else:
return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
嗯,我把它发送到Android应用程序...我不能使用cookies – mp3por
你是正确的2 - >使用create_user()不使用create_user()来做密码 – mp3por
查看你'已经编写了序列化您的用户数据,将'token'附加到它并返回它。如果你想保留某些数据(比如哈希密码),你可以在你的'response_data'中删除它(或者根本不包含它)。如果不知道你的应用程序的工作方式,很难给出更具体的答案。渲染已返回的数据可能取决于您的Android应用程序逻辑而非Django。 – souldeux