Laravel 8具有两种不同模型的多重身份验证返回False,即使凭据为true
我创建了第二个模型,用于作为公司进行身份验证,我添加了警卫并提供 但允许登录 公司类别:Laravel 8具有两种不同模型的多重身份验证返回False,即使凭据为true,laravel,authentication,Laravel,Authentication,我创建了第二个模型,用于作为公司进行身份验证,我添加了警卫并提供 但允许登录 公司类别: <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Suppor
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\Hash;
class Company extends Authenticatable
{
use HasFactory;
protected $guard = 'company';
protected $guarded = [];
}
公司财务总监
use App\Http\Controllers\Controller;
use App\Models\Entreprise;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class CompanyLoginController extends Controller
{
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::guard('company')->attempt($credentials)) {
$request->session()->regenerate();
return redirect()->intended('dashboard');
}
return back()->withErrors([
'email' => 'The provided credentials do not match our records.',
]);
}
}
$hasher->check()是在深入编写te代码后返回false的函数,但由于某些原因,我找不到解决方案。正如您所说,内置函数不起作用,因此您可以尝试这样的手动方法
公共功能验证(请求$Request)
{
$company=company::where('email',$request->email)->first();
如果(!$公司){
return back()->withErrors([
“电子邮件”=>“该电子邮件不存在。”,
]);
}
如果(哈希::检查($request->password,$company->password)){
auth()->guard('company')->login($company);
return redirect()->designed('dashboard');
}
return back()->withErrors([
“电子邮件”=>“提供的凭据与我们的记录不匹配。”,
]);
}
注册时,确保保存散列的
密码它是散列的,使用散列外观,Hash::make()tryphp artisan config:clear
在没有任何更改之前我已经尝试过了,请手动使用
use App\Http\Controllers\Controller;
use App\Models\Entreprise;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class CompanyLoginController extends Controller
{
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::guard('company')->attempt($credentials)) {
$request->session()->regenerate();
return redirect()->intended('dashboard');
}
return back()->withErrors([
'email' => 'The provided credentials do not match our records.',
]);
}
}