私はdjangoのデフォルトのユーザーテーブルを使いたくないので、ユーザー名とハッシュパスワードでユーザーテーブルを作成しました。私はデータベースに投稿する際にmake_password()でパスワードをハッシュしましたが、同じメソッドを使用してデータベースから情報を取得しようとしたときに、同じパスワードに対して別のハッシュが取得されます。以下は、ユーザーを保存して詳細を取得するためのビューコードです。塩のMake_Passwordは同じパスワードに対して異なるハッシュ値を返す
view.py
class HMUser(APIView):
def post(self, request):
request.data['password'] = make_password(request.data['password'])
print(request.data['password'])
serialize = serializers.HMUserSerializer(data=request.data)
if serialize.is_valid():
serialize.save()
return Response(1, status=status.HTTP_201_CREATED)
return Response(serialize.errors,
status=status.HTTP_400_BAD_REQUEST)
class Login(APIView):
def get(self, request, username, password):
print("pass ", password)
userpassword = make_password(password)
print("Hash", userpassword)
user_details = models.HMUser.objects.get(username=username,
password=userpassword)
serialize = serializers.HMUserSerializer(user_details)
return Response(serialize.data)
ありがとうMahesh、私はユーザー名とパスワードの両方を取っていますが、通常の認証プロセスでハッシュされたパスワードだけです。私は、ハッシュするとき何か間違っていると信じています。 –
あなたが観察するのは、塩漬けと意図されたセキュリティ機能です。 –
ありがとう、私は問題を解決するために何を提案するのですか? –