laravel - 身份验证不适用于 laravel 中的多个数据库
问题描述
我有两个不同的数据库:一个用于印度,另一个用于加拿大。
我已经在 database.php 文件中设置了配置,并且迁移和播种工作正常。
管理员模型:
class Admin extends Authenticatable
{
protected $connection = 'mysql_india';
}
登录方式:
public function login(LoginRequest $request)
{
$conn = 'mysql_canada';
if($request->input('country') == '+91'){
$conn = 'mysql_india';
}
$someModel = new Admin;
$someModel->setConnection($conn);
$model = $someModel->checkEmailExist($request->input('email'))->first();
if($model){ // if email found
if(Hash::check($request->input('password'),$model->password)){ // checking password
// dd($model); // i put die here it work till here
Auth::guard('admin')->login($model); // login admin
}
........
//rest of code
}
........
//rest of code
}
在登录时,我正在更改连接国家/地区并检查用户,它还根据国家/地区查找用户,但其中不是身份验证用户。
如果用户来自印度,那么它正在工作(因为我在模型中设置了默认连接)。但如果用户来自加拿大,则它不起作用(没有错误,只是再次重定向到登录页面)。
简而言之,默认连接适用于 Auth。
所以要动态地做 Auth
解决方案
推荐阅读
- inno-setup - 如何在 inno-setup 中调用带有指针参数的函数
- python - 如何处理异步函数之外的“等待”?
- jupyter-notebook - 如何将mat文件传输到数据框
- intel - PXE 引导选项 ROM:它的实际作用是什么?
- python-3.x - r.headers["Authorization"] = f"Bearer {bearer_token}" - 无效的语法错误
- database - 离线 Atlas 集群在没有互联网的情况下使用 Realm Sync?
- ffmpeg - FFmpeg 创建带有后缀(分钟、小时、天)和用户定义的帧之间时间的自定义时间戳
- c++ - 循环 CPU 调度算法
- github - 如何检索我存储在 github 上的大型 csv 文件
- python - 如何在 python 中使用 AWS ses 服务发送嵌入在邮件中的图像?