Ich versuche, Login-Seite mit django Authentifizierungssystem unten ist die AussichtWarum ist die Benutzerauthentifizierung nicht erfolgreich?
...
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('invoices.urls')),
url(r'^todos/', include('todos.urls')),
url(r'^accounts/login/$', todos.views.login, name='login'),
url(r'^accounts/auth/$', todos.views.auth_view, name='auth_view'),
url(r'^accounts/logout/$', todos.views.logout, name='logout'),
url(r'^accounts/loggedin/$',todos.views.loggedin, name='loggedin'),
url(r'^accounts/invalid/$', todos.views.invalid_login, name='invalid_login'),
]
from django.contrib import auth
def auth_view(request):
username = request.POST.get('username','')
password = request.POST.get('password','')
print request.POST
user = auth.authenticate(username=username, password=password) #returns user object if match else None
if user is not None:
auth.login(request, user) #make user status as logged in now using django login function
return HttpResponseRedirect('/todos')
else:
return HttpResponseRedirect('/accounts/invalid')
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login page</title>
</head>
<body>
<h2>login page</h2>
<hr>
<form action="/accounts/auth/" method="post">{% csrf_token %}
username: <input type="text" name="username" value="" id="username"><br>
password: <input type="password" name="password" value="" id="password"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
urls.py zu bauen Die var iable user
gibt None
zurück, auch wenn der Benutzer/Passwort korrekt ist. Wenn ich diese Zeile user = auth.authenticate(username=username, password=password)
zu tatsächlichen Benutzer und Passwort ändern z. user = auth.authenticate(username="peter", password="[email protected]$w0rD275")
ist es erfolgreich angemeldet
Kommandozeile aus
setzen>>>result=auth.authenticate(username='admin', password='adkd92')
>>>print result
None
>>>result=auth.authenticate(username='admin', password='admin123')
>>>print result
admin
Haben Sie ein Formular oder ist es nur ein Beitrag, den Sie senden? Ich meine eine AuthForm von Django oder was auch immer? Haben Benutzername und Passwort einen Wert? Existieren sie in db? – Bestasttung
Ja, der Benutzer/Pass existiert in der Django Admin-Datenbank. –
Wenn Sie die Anfrage bekommen. POST.get ('Passwort', ''), was ist der Wert? ist es ein klares Passwort oder ein Hashed? – Bestasttung