在Laravel 8中如何驗證輸入密碼與資料庫雜湊密碼的匹配
P粉129731808
2023-08-28 14:25:49
<p>如何在Laravel中從給定的請求中驗證使用者密碼?密碼是如何與儲存在資料庫中的密碼雜湊值進行比較的?
**
這是我的控制器
**</p>
<pre class="brush:php;toolbar:false;"><?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class MainController extends Controller
{
function 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 "error";
$notification = array(
'message' => '使用者不存在! ',
'alert-type' => 'error'
);
return back()->with($notification);
}
else{
$request->session()->put('user',$data);
return redirect('dashboard');
}
}}</pre></p>
像這樣
$encrypted = Crypt::encrypt('password_name_variable');
基本上,你想做的是:
users
表中具有給定使用者名稱的使用者。所以,你想要首先查詢具有給定使用者名稱的使用者。然後,在檢索到使用者並驗證其存在之後,你可以檢查提供的密碼是否與檢索到的模型上的雜湊密碼相符。
然而,在Laravel中有內建的功能可以實現這一點,根據你的需求,這樣做可能更簡單:
https://laravel.com/api/8.x/Illuminate/Support/Facades/Auth.html#method_attempt