如何解决由于保护功能,调用方法尝试不起作用
嘿,再次抱歉,在浏览互联网后,我没有找到此错误的答案。我尝试了其他方法,但是有人说需要使用护照,而且我已经编辑了auth.php并添加了一些新的提供程序,例如 'employees' “员工”
EmployeeLoginController.php
class EmployeeLoginController extends Controller
{
public function __construct()
{
$this->middleware('guest:employee');
}
public function username(){
return 'empId';
}
public function showLoginForm(){
return view('auth.employee-login');
}
public function login(Request $request){
// Validate the form data
$this->validate($request,[
'empId' => 'required','password' => 'required|min:6'
]);
//Store requested data into a variable credentials
$credentials = [
'empId' => $request->input('empId'),'password' => $request->input('password')
];
// Attempt to log the user in
if(Auth::guard('employee')->attempt($credentials)){
// If successful,redirect to their intended location
return redirect()->intended(route('employee.dashboard'));
}
// If unsuccessful,redirect back to the login with form data
return redirect()->back()->withInput($request->only('empId'));
}
}
这是我的模特
Employee.php
class Employee extends Authenticatable
{
use Notifiable;
protected $guard = 'employee';
protected $table = 'EmpUsersInfo';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'empId','password'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password','remember_token',];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',];
public function getAuthPassword()
{
return $this->password;
}
}
auth.php
<?php
return [
'defaults' => [
'guard' => 'web','passwords' => 'users',],'guards' => [
'web' => [
'driver' => 'session','provider' => 'users','api' => [
'driver' => 'token','hash' => false,'employee' => [
'driver' => 'session','provider' => 'employees','employee-api' => [
'driver' => 'token','providers' => [
'users' => [
'driver' => 'eloquent','model' => App\User::class,'employees' => [
'driver' => 'eloquent','model' => App\Employee::class,// 'users' => [
// 'driver' => 'database',// 'table' => 'users',// ],'passwords' => [
'users' => [
'provider' => 'users','table' => 'password_resets','expire' => 60,'throttle' => 60,'employees' => [
'provider' => 'employees','expire' => 15,'password_timeout' => 10800,];
解决方法
我发现了问题,这是我的凭据,因为我使用的是一个不使用哈希密码的现有数据库,并且当我输入密码时,它没有成功通过身份验证,但是没有错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。