我正在尝试使用
directorytree/ldaprecord-laravel
包对 Laravel 中的 AD 用户进行身份验证。
我已经安装了该软件包并按照软件包安装中所示的步骤进行操作。用于身份验证的脚本如下所示
$connection = Container::getConnection('default');
$user = User::findByOrFail('samaccountname', 'sbauman');
if ($connection->auth()->attempt($user->getDn(), 'SuperSecret')) {
// Credentials are valid!
}
但是,当我尝试登录时出现以下错误:
message: "LdapRecord\\Laravel\\LdapUserRepository::createModel(): Return value must be of type LdapRecord\\Models\\Model, App\\Models\\User returned"
请协助解决这个问题。
您是否尝试过扩展您的用户模型 t,LdapRecord\Models\Model ?并将您的 LDAP 类添加到公共静态数组 $objectClasses 中?
根据文档,您必须添加包含 LDAP 记录的对象类的公共静态属性。
这些对象类用于在 LDAP 目录中查找正确的对象。
<?php
use LdapRecord\Models\Model;
class User extends Model
{
public static array $objectClasses = [
'top',
'person',
'organizationalperson',
'user',
];
}