使用 Directorytree/ldaprecord-laravel 的 Laravel 和 AD 连接在身份验证时出现错误

问题描述 投票:0回答:1

我正在尝试使用

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"

请协助解决这个问题。

php laravel ldap composer-php
1个回答
0
投票

您是否尝试过扩展您的用户模型 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',
];
}
© www.soinside.com 2019 - 2024. All rights reserved.