Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengesahkan bahawa kata laluan input sepadan dengan kata laluan cincang pangkalan data dalam Laravel 8

<p>Bagaimana untuk mengesahkan kata laluan pengguna daripada permintaan yang diberikan dalam Laravel? Bagaimanakah kata laluan berbanding dengan cincang kata laluan yang disimpan dalam pangkalan data? ** Ini pengawal saya **</p> <pre class="brush:php;toolbar:false;"><?php ruang nama AppHttpControllers; gunakan IlluminateHttpRequest; gunakan IlluminateSupportFacadesDB; kelas MainController memanjangkan Pengawal { log masuk fungsi1(Permintaan $permintaan){ $username = $request->input('username'); $password = $request->input('password'); $data = DB::table('users')->where(['username'=>$username, 'password'=>$password])->first(); if($data == null){ bergema "ralat"; $pemberitahuan = array( 'message' => 'Pengguna tidak wujud! ', 'alert-type' => 'error' ); return back()->with($notification); } lain{ $request->session()->put('user',$data); return redirect('dashboard'); } }}</pre></p>
P粉129731808P粉129731808441 hari yang lalu497

membalas semua(2)saya akan balas

  • P粉373990857

    P粉3739908572023-08-29 00:51:27

    Seperti ini

    $disulitkan = Crypt::encrypt('kata laluan_nama_variable');

    balas
    0
  • P粉071559609

    P粉0715596092023-08-29 00:50:53

    Pada asasnya, apa yang anda mahu lakukan ialah:

    1. Pertanyaan usersjadual untuk pengguna dengan nama pengguna yang diberikan.
    2. Semak sama ada kata laluan cincang mereka sepadan dengan cincang kata laluan yang disediakan.

    Jadi, anda mahu pertamamenyiasat pengguna dengan nama pengguna yang diberikan. Kemudian, selepas mendapatkan semula pengguna dan mengesahkan kewujudannya, anda boleh menyemak sama ada kata laluan yang diberikan sepadan dengan kata laluan cincang pada model yang diambil.

    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');
    }
    

    Walau bagaimanapun, terdapat fungsi terbina dalam dalam Laravel untuk mencapai ini, dan bergantung pada keperluan anda, mungkin lebih mudah untuk melakukan ini:

    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

    balas
    0
  • Batalbalas