So überprüfen Sie, ob das eingegebene Passwort mit dem Datenbank-Hash-Passwort in Laravel 8 übereinstimmt
P粉129731808
P粉129731808 2023-08-28 14:25:49
0
2
448
<p>Wie überprüfe ich das Benutzerpasswort aus einer bestimmten Anfrage in Laravel? Wie wird das Passwort mit dem in der Datenbank gespeicherten Passwort-Hash verglichen? ** Das ist mein Controller **</p> <pre class="brush:php;toolbar:false;"><?php Namespace AppHttpControllers; benutze IlluminateHttpRequest; verwenden Sie IlluminateSupportFacadesDB; Die Klasse MainController erweitert Controller { Funktion login1(Request $request){ $username = $request->input('username'); $password = $request->input('password'); $data = DB::table('users')->where(['username'=>$username, 'password'=>$password])->first(); if($data == null){ echo „Fehler“; $notification = array( 'message' => 'Der Benutzer existiert nicht! ', 'alert-type' => 'error' ); return back()->with($notification); } anders{ $request->session()->put('user',$data); Return Redirect('Dashboard'); } }}</pre></p>
P粉129731808
P粉129731808

Antworte allen(2)
P粉373990857

像这样

$encrypted = Crypt::encrypt('password_name_variable');

P粉071559609

基本上,你想要做的是:

  1. 查询users表中具有给定用户名的用户。
  2. 检查他们的哈希密码是否与提供的密码的哈希相匹配。

所以,你想要首先查询具有给定用户名的用户。然后,在检索到用户并验证其存在之后,你可以检查提供的密码是否与检索到的模型上的哈希密码匹配。

public function login(Request $request): Response
{
    $user = User::where('username', $request->get('username'));

    if (!$user || !Hash::check($request->get('password'), $user->password)) {
        return back()->with([
            'message' => '用户名和/或密码不正确。',
            'alert-type' => 'error'
        ]);
    }

    $request->session()->put('user', $user);

    return redirect('dashboard');
}

然而,在Laravel中有内置的功能可以实现这一点,根据你的需求,这样做可能更简单:

public function login(Request $request): Response
{
  if (!Auth::attempt(['username' => $request->get('username'), 'password' => $request->get('password')]) {
        return back()->with([
            'message' => '用户名和/或密码不正确。',
            'alert-type' => 'error'
        ]);
    }

    return redirect('dashboard');
}

https://laravel.com/api/8.x/Illuminate/Support/Facades/Auth.html#method_attempt

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!