gpt4 book ai didi

php - 使用多个表从 xenforo 数据库在 Laravel 中进行用户身份验证

转载 作者:可可西里 更新时间:2023-11-01 13:18:55 26 4
gpt4 key购买 nike

我有 2 个数据库:一个来自 Laravel,另一个来自 XenForo 2。在 Laravel 上,不应进行注册,而应仅在论坛上进行注册,以减少数据重复并消除由于某种原因发生的不同步。

XF 中有 2 个表:xf_users - 存储基本用户信息,xf_user_authenticate - 存储带有密码哈希的序列化数组字符串。

需要通过这2张表进行认证。用户正确输入了用户名/密码 - 登录到 Laravel CMS。

连接第三方数据库很简单:在User model中手动注册连接如下:

protected $ connection = 'forum';
protected $ table = 'xf_users';
public $ timestamps = false;

我还创建了用于从 xf_user_authenticate 表获取密码的密码模型:

class Password extends Model
{
     protected $ fillable = ['data'];
     protected $ connection = 'forum';
     protected $ table = 'xf_user_authenticate';
     public $ timestamps = false;
}

另外,据我了解,我需要做一个自定义的守卫和提供者,这里我已经无法理解下一步该怎么做了......

如何在 laravel 引擎中使用这 2 个表进行身份验证?

最佳答案

我通过更改用户模型解决了这个问题:

class User extends Authenticatable
{
use Notifiable;

protected $fillable = ['username', 'email', 'password', 'user_state'];
protected $connection = 'forum';
protected $table = 'xf_user';
protected $primaryKey = 'user_id';
public $timestamps = false;

public function getAuthPassword(){
$password = Password::where('user_id', '=', $this->user_id)->select('data')->first();
return unserialize($password->data)['hash'];
}
}

使用此模型,来自 XF 的用户可以正常登录

关于php - 使用多个表从 xenforo 数据库在 Laravel 中进行用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57707021/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com