Laravel 验证:管理员不工作
我已经创建了管理员登录系统,但在auth::trunt上,它总是返回false 这是我的密码Laravel 验证:管理员不工作,laravel,laravel-5,laravel-5.5,laravel-5.6,Laravel,Laravel 5,Laravel 5.5,Laravel 5.6,我已经创建了管理员登录系统,但在auth::trunt上,它总是返回false 这是我的密码 $credentials= ['email' => $request->get('email'), 'password'=>$request->get('password')]; if (Auth::guard('admin')->attempt($credentials)) { return redirect()->intended(r
$credentials= ['email' => $request->get('email'), 'password'=>$request->get('password')];
if (Auth::guard('admin')->attempt($credentials)) {
return redirect()->intended(route('admin.dashboard'));
}
在管理模型中
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Admin extends Authenticatable
{
protected $guard = 'admin';
protected $primary_key = 'admin_id';
protected $table = 'admins';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'admin_firstname', 'admin_lastname', 'email', 'admin_username', 'admin_phone', 'admin_picture', 'admin_gender', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
auth::尝试失败不知道为什么不起作用
其日志记录,但在管理中间件中发现问题
$this->middleware('auth:admin')强>
我的auth.php
'guards' => [
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Models\Admin::class,
],
],
degault guard设置为web,但在仪表板控制器中,我使用的是auth:admin。请检查您的代码是否正常。您需要确保。您是否在注册中使用了
bcrypt()
。像这样吗
$password=bcrypt($request['password']);
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'admin-api' => [
'driver' => 'token',
'provider' => 'admins',
],
],
您需要在config/auth.php中进行更改
你的警卫应该是这样的
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'admin-api' => [
'driver' => 'token',
'provider' => 'admins',
],
],
提供者应该是
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
],
密码
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
'admins' => [
'provider' => 'admins',
'table' => 'password_resets',
'expire' => 15,
],
],
这是一个相应更改您的模型和驱动程序的演示您是否也在auth.php中添加了提供程序?是的,我已经添加了可以更新auth.php文件中的问题吗?是的,在数据库中,我看到我的密码加密了发布您的auth.php和注册控制器代码当我删除任何中间件时,它的日志记录正确,然后重定向到仪表板但当我添加auth:admin时,它将重定向到admin loginpublic函数uu construct(){$this->中间件('guest:admin',['except'=>['logout']];}插件admin login controller