首页 > 解决方案 > LDAP 配置 Laravel5 - 未定义身份验证用户提供程序 [adldap]

问题描述

我是 Laravel 5.8 的新手,我正在尝试开发一个带有 LDAP 身份验证的应用程序。

我使用这个包:https ://adldap2.github.io/Adldap2-Laravel/#/auth/setup

所以,这是我的配置代码(app.php)

// service providers array
Adldap\Laravel\AdldapServiceProvider::class,
Adldap\Laravel\AdldapAuthServiceProvider::class

// aliases array
'Adldap' => Adldap\Laravel\Facades\Adldap::class

LDAP 配置(ldap.php)

'hosts' => explode(' ', env('LDAP_HOSTS', 'myserver1 myserver2'))
'port' => env('LDAP_PORT', 389),
'base_dn' => env('LDAP_BASE_DN', 'dc=mydc1,dc=mydc2,dc=mydc3'),
'username' => env('admin'),
'password' => env('admin'),

身份验证配置(auth.php)

// user provider fields
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],

        'users' => [
            'driver' => 'adldap',
            'model' => App\User::class,
        ],
    ],

然后是用户控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Adldap\AdldapInterface;

class UserController extends Controller
{

    protected $ldap;


    public function __construct(AdldapInterface $ldap) {
        $this->ldap = $ldap;
    }

    public function index() {
        $users = $this->ldap->search()->users()->get();
        return view('users.index',compact('users'));
    }
}

我得到了这个错误:身份验证用户提供程序 [adldap] 未定义。 有谁知道这个错误并且可以告诉我我的配置哪里出错了?

谢谢你的帮助:)

编辑:如果这可以帮助,但今天早上错误准确地告诉我问题出在welcome.blade.php 文件中

标签: phplaravellaravel-5ldaplaravel-5.8

解决方案


您需要在 .env 文件中添加一些基本配置

ACCOUNT_PREFIX = local
ACCOUNT_SUFFIX = local
DOMAIN_CONTROLLERS = "172.16.20.142"
PORT = 389
TIMEOUT = 5
BASE_DN = "dc=local,dc=local"
USER_DN = "cn=users,dc=dummy,dc=local"
ADMIN_ACCOUNT_SUFFIX = @man.local
ADMIN_USERNAME = administrator
ADMIN_PASSWORD = dsds
LDAP_USER_CUSTOM_EMAIL_DOMAIN = @man.local

并检查您的 aldap.config 一次

之后请通过以下命令清除配置缓存

php artisan config:clear && php artisan cache:clear &&  php artisan view:clear && php artisan route:clear  && php artisan config:cache


推荐阅读