保持LDAP用户使用PHP会话登录

时间:2013-08-10 18:07:35

标签: php session ldap

更新根据以下建议。但仍然没有工作。有什么帮助吗?

我的公司使用Active Directory LDAP,我正在使用adLDAP对用户进行身份验证以登录此网站。

到目前为止,它有效..但每次访问页面时都必须重新登录。解决这个问题,我知道是会议。但我无法弄清楚会话中存储的内容以保持用户登录。

这包含在我login.php页面的顶部:

auth.php

<?php
//include LDAP authenication script
 require_once('LDAP/adLDAP.php');
  $adldap = new adLDAP();
  $username = $_POST['account'];
  $password = $_POST['password'];
  $authUser = $adldap->authenticate($username, $password);
  $userinfo = $adldap->user_info($username, array("*"));
  if ($authUser == true) {
  $_SESSION['LDAP']['login'] = true
  }
?>

同样在每页的顶部我都有:

<?php
if (empty('LDAP')) session_start();
if (!isset($_SESSION['LDAP']['login'] && $_SESSION['LDAP']['login'] !== true) {
header('Location: login.php');
exit; // dont forget the exit here...
}
?>

现在,每当我访问我的索引页index.php时,我都会登录,然后我被重定向到主页面。它完美地运作。但如果我刷新页面,我会被要求再次登录。

我应该将哪些内容存储到会话中,以便每次刷新页面时都不必登录?

我知道它始于:

session_start();

但我不知道该藏什么?

1 个答案:

答案 0 :(得分:2)

您应该只在登录页面上验证/包含LDAP .. 如果成功设置$ _SESSION ['LDAP'] ['login'] = true;

并检查每一页。

if (!isset($_SESSION['LDAP']['login'] && $_SESSION['LDAP']['login'] !== true) {
   header('Location: login.php');
   exit; // dont forget the exit here...
}