Hallo!
Ich will ein Passwort, das eingegeben wird, vergleichen. Doch es kommt immer wieder diese Fehlermeldung:
Eingegebenes Passwort: n1234
admin:238 Benutzername: nadine
admin:242 Uncaught ReferenceError: form is not defined
at validatePassword (admin:242:18)
at HTMLButtonElement.onclick (admin:161:100)
Der Code im AdminController sieht so aus:
public function validatePassword(Request $request, $userName) {
try {
$password = $request->input('password');
// Benutzer anhand des Benutzernamens finden
$user = User::where('username', $userName)->first();
// Debugging-Informationen in das Log schreiben
\Log::info('Benutzername: ' . $userName);
\Log::info('Benutzer gefunden: ' . ($user ? 'Ja' : 'Nein'));
if (!$user) {
return response()->json(['valid' => false, 'message' => 'Benutzer nicht gefunden']);
}
// Überprüfen, ob das gespeicherte Passwort im Bcrypt-Format ist
$passwordInfo = password_get_info($user->password);
\Log::info('Passwort-Algorithmus: ' . $passwordInfo['algoName']);
if ($passwordInfo['algoName'] !== 'bcrypt') {
return response()->json(['valid' => false, 'message' => 'Das gespeicherte Passwort verwendet nicht den Bcrypt-Algorithmus.']);
}
// Passwortüberprüfung
$passwordCheck = Hash::check($password, $user->password);
\Log::info('Passwort korrekt: ' . ($passwordCheck ? 'Ja' : 'Nein'));
if ($passwordCheck) {
return response()->json(['valid' => true]);
}
else {
return response()->json(['valid' => false, 'message' => 'Ungültiges Passwort']);
}
}
catch (\Exception $e) {
\Log::error('Fehler bei der Passwortvalidierung: ' . $e->getMessage());
return response()->json(['valid' => false, 'message' => 'Serverfehler. Bitte versuchen Sie es später erneut.'], 500);
}
}
Und im admin blade so:
function showPasswordModal(route, userName) {
console.log('showPasswordModal() wurde aufgerufen mit Route:', route);
$('#passwordModal').modal('show');
$('#passwordForm').attr('action', route); // Setze die Aktion des Passwort-Formulars auf die gewählte Route
$('#passwordForm').data('userName', userName);
console.log(userName);
}
function validatePassword() {
console.log('validatePassword() wurde aufgerufen');
var enteredPassword = document.getElementById('passwordInput').value;
var userName = $('#passwordForm').data('userName');
console.log('Eingegebenes Passwort:', enteredPassword);
console.log('Benutzername:', userName);
$.ajax({
type: 'POST',
url: form.action,//$('#passwordForm').attr('action'), // Stellen Sie sicher, dass dies die richtige Route ist
data: {
'_token': '{{ csrf_token() }}',
'password': enteredPassword
},
success: function(response) {
console.log('Server-Antwort:', response);
if (response.valid) {
$('#payForm').submit();
}
else {
alert(response.message || 'Falsches Passwort! Bitte versuche es erneut.');
}
},
error: function(xhr, status, error) {
console.error('AJAX-Fehler:', error);
alert('Fehler beim Validieren des Passworts. Bitte versuche es später erneut.');
}
});
Warum kommt immer wieder eine Fehlermeldung? Ich habe schon alles probiert und das schon seit Stunden! Danke.
Das ist gut zu hören aber kann man sich denn eigentlich überhaupt anonym ohne Einlog Daten anmelden? Da das schon so lang her ist kann ich mich daran nicht mehr erinnern. Das Problem ist ja aktuell, dass ich mich garnicht mehr anmelden kann.