Bonjour,
Actuellement, mon application dans laravel 5.6 dispose d’une authentification LDAP. J'aimerais effectuer une autre authentification si elle échoue avec LDAP avec un compte local laravel.
En cas d'échec de l'authentification LDAP. comment puis-je authentifier l'utilisateur dans laravel avec son compte local
Je vous remercie
Voila je rencontre un petit problème avec mon code.
Décrivez ici votre code ou ce que vous cherchez à faire
``
Entourez votre code pour bien le mettre en forme
### Ce que je veux
<?php
namespace App\DataAccessLayer;
use App\Http\Controllers\ActeurController;
use Exception;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use App\User;
use Config;
class LDAPconnection extends Exception {
public function __construct()
{
}
public function connect()
{
}
public function __destruct()
{
}
//================================================================================================
// Authentification LDAP.
//================================================================================================
public function authenticate($login, $password)
{
//----------------------------------------------------------------------------------------
// Test Authentification LDAP.
//----------------------------------------------------------------------------------------
if ($login && $password) {
$this->ldapConnection = @ldap_connect($this->LDAP_SERVER, $this->LDAP_PORT);
@ldap_set_option($this->ldapConnection, LDAP_OPT_PROTOCOL_VERSION, $this->LDAP_VERSION);
if ($this->ldapConnection)
{
$filter = sprintf("mail=%s", $login);
$result = @ldap_search($this->ldapConnection, $this->LDAP_BASEDN , $filter);
if ($result)
{
$count = @ldap_count_entries($this->ldapConnection, $result);
if ($count == 1)
{
$entry = @ldap_first_entry($this->ldapConnection, $result);
$dn = @ldap_get_dn($this->ldapConnection, $entry);
return $this->getLdapUser($result, $entry, $dn, $login, $password);
}
elseif ($count > 1) {
$entries = @ldap_get_entries($this->ldapConnection, $result);
for ($i=0; $i < $entries["count"]; $i++) {
$result = @ldap_search($this->ldapConnection, $entries[$i]['dn'], $filter);
$user = $this->getLdapUser($result, $entries[$i], $entries[$i]['dn'], $login, $password);
if ($user) {
//----------------------------------------------------------------------------------------
// Utilisateur LDAP connecter ok + information
//----------------------------------------------------------------------------------------
return $user;
}
}
}
} else {
throw new ServiceUnavailableException(__("Le service d'authentification est indisponible."));
}
}
}
//----------------------------------------------------------------------------------------------------------------------
// Dans le cas ou l'authentification LDAP échoue, Authentification local laravel
//----------------------------------------------------------------------------------------------------------------------
/*
comment faire une authentification local laravel
Actuellement je retourne un tableau vide
*/
return new User();
}`
### Ce que j'obtiens
Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(