Laravel 5.5多认证报错:InvalidArgumentException未定义认证用户提供者
解决Laravel 5.5多认证中的
InvalidArgumentException Authentication user provider [] is not defined错误 嘿,我来帮你排查这个认证错误的问题!这个报错的根源其实是你的config/auth.php配置里存在两处明显的问题:
问题1:守卫与认证提供者的名称不匹配
你在guards数组里给admin守卫指定的provider是adminss,但在providers数组里你定义的提供者键名是admins——拼写差了一个字母,Laravel找不到对应的提供者,自然就抛出错误了。
问题2:admins提供者的配置不完整
从你贴出的代码来看,providers里的admins配置只写了'dri...就中断了,缺少完整的驱动和模型/表配置,这也会导致Laravel无法正确识别这个提供者。
具体修复步骤:
修正守卫的提供者名称
把guards里admin项的provider值改成admins,和你定义的提供者键名保持一致:'guards' => [ // ... 其他守卫配置 'admin' => [ 'driver' => 'session', 'provider' => 'admins', // 这里把adminss改为admins ], ],补全
admins提供者的完整配置
根据你的需求选择Eloquent驱动(用模型)或者Database驱动(直接用数据库表),补全配置:- 如果你用Eloquent模型(推荐):
'providers' => [ // ... users提供者配置 'admins' => [ 'driver' => 'eloquent', 'model' => App\Admin::class, // 替换成你的Admin模型类路径 ], ], - 如果你用Database驱动:
'providers' => [ // ... users提供者配置 'admins' => [ 'driver' => 'database', 'table' => 'admins', // 对应你的管理员数据表名 ], ],
- 如果你用Eloquent模型(推荐):
清除配置缓存(重要)
修改配置后,记得清除Laravel的配置缓存,确保新配置生效:php artisan config:clear
做完这些步骤后,你的多认证配置应该就能正常工作了,不会再抛出那个提供者未定义的错误啦!
内容的提问来源于stack exchange,提问作者Sai Krishna
相关产品推荐
相关产品推荐

