Форма входа с аутентификацией LDAP сначала и затем запрашивает пользователя снова MySQL - PullRequest
1 голос
/ 16 мая 2019

Я создаю форму входа для локального приложения, эта форма входа будет сначала проходить проверку подлинности на сервере LDAP (имя пользователя и pwd), а затем в локальной базе данных mySQL, чтобы проверить, зарегистрирован ли пользователь (имя пользователя указано) в базе данных.и имеет доступ к этому локальному приложению).

Я уже выяснил код для LDAP, а также запрос php, чтобы проверить, существует ли пользователь в БД, проблема в том, что я не понимаю, какчтобы правильно записать в php-файл случаи для управления ими:

  1. Пользователь проходит LDAP и существует в БД -> Отправить пользователя на главный сайт приложения.
  2. Пользователь передает LDAP, но нев БД -> Отправить сообщение о том, что у пользователя нет доступа к приложению.
  3. Учетные данные не работают на стороне LDAP.

внешний веб-сайт HTML "index.html"

<form action="query.php" method="post">

  <div>
    <label for="username"><b>Username</b></label>
    <input type="text" placeholder="Enter Username" name="username" required>
    <label for="password"><b>Password</b></label>  
    <input type="password" placeholder="Enter Password" name="password" required>
    <button type="submit">Login</button>
  </div>
</form>

php файл для управления LDAP, а затем запрос MySQL" query.php "

<?php
$servername = "app.server.com";
$username = "root";
$password = "something";
$dbname = "app_calendar";
$error = false;

// check LDAP for username and pwd provided
$ldap = ldap_connect("ldap.server.com");
if (@$bind = ldap_bind($ldap, "ls\\".$_POST['username'], $_POST['password'])) 
{

  //SQL part to check if user is on app DB
    $conn = new mysqli($servername, $username, $password, $dbname);
    if ($conn->connect_error) 
    {
        die("Connection failed: " . $conn->connect_error);
    } 
    $sql = "SELECT name, mail FROM ms_resources.users WHERE laptop = '".$_POST['username']."' LIMIT 1";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) 
    {
        while($row = $result->fetch_assoc())
        {
            $result2='<div class="alert alert-success alert-dismissible fade in">
            <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a><strong>User logged in!</strong> Welcome '. $row["name"]. '</div>';
            $error = true;
        }
    } 
    else 
    {
        $result2='<div class="alert alert-danger alert-dismissible fade in">
        <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a><strong>Error!</strong> No access granted for user: '.$_POST['username'].'</div>';
    }
    $conn->close();

} 
else 
{

   $result2='<div class="alert alert-danger alert-dismissible fade in">
   <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a><strong>Error! </strong>Invalid credentials!</div>';

}



<div class="container">
        <div>
            <?php echo $result2; ?>    
        </div>
    </div>

</body>

</html>

Я использую эту последнюю часть:

<div class="container">
        <div>
            <?php echo $result2; ?>    
        </div>
    </div>

Для отправкиошибка при загрузке, но после этого не знаю, как перенаправить в правильные случаи, я буду признателен за любойпосоветуйте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...