我负责创建一个新的 Laravel 项目,其中的身份验证由我们的 LDAP 进行。我对 Laravel 还很陌生,所以请原谅我缺乏理解
我正在尝试使用这个库:Adldap2-Laravel
我按照此文档从头开始构建身份验证。
所以我的config/app.php添加了这些行
//In providers array
Adldap\Laravel\AdldapServiceProvider::class,
Adldap\Laravel\AdldapAuthServiceProvider::class,
//In aliases
'Adldap' => Adldap\Laravel\Facades\Adldap::class,
还有我的config/auth.php(我也试过只用adldap驱动,没有成功)
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'users' => [
'driver' => 'adldap',
'model' => App\User::class,
],
],
一切看起来都不错。但我无法认证,我有这个错误:These credentials do not match our records.
当我使用此代码时
use Adldap\Laravel\Facades\Adldap;
$username = "myUser";
$password = "myPassword";
if (Adldap::auth()->attempt($username, $password)) {
//Queries here
}
else
{
echo "Auth failed";
}
我可以执行查询,并且身份验证适用于我的所有用户。但是我无法正确使用“登录”按钮后面的登录表单。
我错过了什么 ?
我不知道身份验证是否应该在不导入任何内容的情况下直接工作,但我也尝试运行此命令
php artisan adldap:import
我所有的用户都被找到并插入到 laravel 数据库中。但是身份验证仍然不起作用。
我ADLDAP_ACCOUNT_SUFFIX=
从我的.env文件中删除了
并直接添加后缀 [email protected]
现在我可以通过电子邮件地址进行连接。
我不知道这是否是最好的解决方案,但至少它有效。
我让这个帖子打开几天看看是否有人有更好的主意
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句