laravel - laravel 中的多重身份验证
问题描述
您好,我正在尝试将管理员登录到我的系统,在做了我所知道的一切之后,登录时我仍然收到错误“凭据与我们的记录不匹配”这是我的代码。授权文件
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\admin::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
'throttle' => 60,
],
'admins' => [
'provider' => 'admins',
'table' => 'password_resets',
'expire' => 60,
'throttle' => 60,
],
],
登录控制器
<?php
namespace App\Http\Controllers\Admin\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/admin/dashboard';
public function showLoginForm()
{
return view('admin.login');
}
public function login(Request $request)
{
$this->validateLogin($request);
if ($this->attemptLogin($request)){
return $this->sendLoginResponse($request);
}
return $this->sendFailedLoginResponse($request);
}
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function guard()
{
return Auth::guard('admin');
}
}
管理员.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class admin extends Authenticatable
{
use Notifiable;
protected $guard = 'admin';
protected $primaryKey = 'admin_id';
protected $fillable = [
'name','email','password',
];
protected $table = 'admin';
}
登录刀片
@if(count($errors)>0)
<div class="alert alert-success" role="alert">
<ul>
@foreach($errors->all() as $error)
<li>{{$error}}</li>
@endforeach
</ul>
</div>
@endif
<form class="form-horizontal" action="{{route('admin.login')}}" method="post">
{{csrf_field()}}
<fieldset>
<div class="form-group">
<label for="email" class="col-lg-4 control-label">Email</label>
<div class="col-lg-8">
<input type="email" class="form-control" id="email" name="email" placeholder="Email">
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="col-lg-4 control-label">Password</label>
<div class="col-lg-8">
<input type="text" class="form-control" id="inputPassword" name="password" placeholder="Password">
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<button type="submit" class="btn btn-primary btn-block">LOGIN</button>
</div>
</div>
</fieldset>
</form>'''
web.php
Route::get('admin','Admin\Auth\LoginController@showLoginForm')->name('admin.login');
Route::post('admin','Admin\Auth\LoginController@login');
解决方案
推荐阅读
- php - Guzzle 不发送发布请求
- azure - 用于使用新的 VNet 集成功能配置应用服务的 ARM 模板?
- python - Python:解决寻找满足特定条件的组合的问题
- angular-cli - 角度 6 中缺少 Vendor.bundle.js?
- spring-cloud-feign - Spring Boot 虚拟客户端
- dart - 根据 sharedpreference 中的数据设置背景颜色
- javascript - 如何修复 [干预] 忽略取消可取消 = false 的 touchmove 事件的尝试,例如因为滚动正在进行中且无法
- sed - 如何在模式之前插入多个包含空格、管道、grep 和 sed 命令的复杂行
- groovy - 如何理解下面的 Groovy 脚本功能?
- node.js - 显示从路由器到 ejs 视图的 flash 消息