meine Gewohnheit Anmeldungen apiUnabe zu bekommen Token von DRF get-Token api
from rest_framework import viewsets
from rest_framework import serializers
class SignupSerializer(serializers.Serializer):
email = serializers.EmailField(required=True)
password = serializers.CharField(required=True, write_only=True)
def validate_email(self, val):
try:
User.objects.get(username=val)
raise serializers.ValidationError("Email-ID already Exist")
except User.DoesNotExist:
return val
class SignupView(viewsets.ModelViewSet):
serializer_class = SignupSerializer
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
data = serializer.data
email = data.get('email')
password = data.get('password')
u = User(email=email, username=email)
u.set_password(password)
u.save()
data = {
'message': 'Successfully Created!',
'data': {'id': u.id, 'email': email},
}
return Response(data)
Toekn erhalten api
from rest_framework.authtoken import views
urlpatterns = [
url(r'^api-token-auth/', views.obtain_auth_token),
]
wenn ich signup
api getroffen, den Erfolg Antwort zurückgibt, Ich meine
{ 'message': 'erfolgreich erstellt!', 'data': { 'id': 1, 'E-Mail': '[email protected]'}}
aber wenn ich versuche,/zu generieren bekommen Token für diesen Benutzer mit über Token API, es sagt ..invalid Anmeldeinformationen?
{
"non_field_errors": [
"Unable to log in with provided credentials."
]
}
aber wenn ich einen Benutzer mit Verwaltungsbefehl createsuperuser und verwenden gleiche api erstellen, es zu bekommen Token funktioniert?
gibt es etwas falsch in Signup API?
Weisen Sie dem Benutzer ein Token _Token.objects.create (user = ...) _ zu? Können Sie überprüfen, ob Ihrem Benutzer ein Token in der Datenbank zugeordnet ist oder nicht? Wenn nicht, dann müssen Sie, wenn Sie TokenAuthentication verwenden möchten. – kapilsdv