我想在yii2中执行LDAP登录。
怎么做?
这是LoginForm.php
中的功能。
public function authenticate($attribute, $params) {
if (!$this->hasErrors()) {
// var_dump($_POST); die;
define('DOMAIN_FQDN', 'abc.com');
define('LDAP_SERVER', '192.*.*.*');
$ldap = ldap_connect(DOMAIN_FQDN);
// echo $_POST['LoginForm']['username'];
if ($bind = ldap_bind($ldap, $_POST['LoginForm']['username'], $_POST['LoginForm']['password'])) {
echo "success";
die;
}
else{
echo "error";
die;
}
答案 0 :(得分:2)
我建议您在实施自己的解决方案之前先查看现有解决方案。
查看此库 - Adldap2。
以下是验证的一个例子:
try {
if ($provider->auth()->attempt($username, $password)) {
// Credentials were correct.
} else {
// Credentials were incorrect.
}
} catch (\Adldap\Exceptions\Auth\UsernameRequiredException $e) {
// The user didn't supply a username.
} catch (\Adldap\Exceptions\Auth\PasswordRequiredException $e) {
// The user didn't supply a password.
}
更多信息可以在official docs的自述文件中找到。有关配置的信息可用here。
至于您的最新错误,消息已清除 - 请检查您提供的凭据是否正确。