我正在尝试设置一个 php 脚本,该脚本需要获取用户在登录表单上传递的凭据。我已经在我的 apache 服务器上设置了表单例份验证,登录表单将用户重定向到 php 脚本,但是当我访问“ session ”cookie 时,我得到一个长的加密行,而不是用户名和密码的单独记录。有没有办法让 apache 将这些值传递给 php 脚本?如果有,我如何访问这些值?
详情见下:
.htaccess 用于 php 脚本所在的目录 - webi/.htaccess:
AuthFormProvider ldap
AuthType form
AuthFormLoginRequiredLocation "http://my.server.addr/webi/login/index.html"
AuthName "LDAP"
AuthLDAPURL "ldap://ldap.server.ip/ou=users,dc=example,dc=com"
Require valid-user
Session On
SessionEnv On
SessionCookieName session path=/
SessionCryptoPassphrase secret
SessionMaxAge 900
php 脚本 - webi/profile/index.php:
<?php
$cookie_name = "session";
if(isset($_COOKIE[$cookie_name]))
{
echo "<li class='active'><a href='#'><span>$_COOKIE[$cookie_name]</span></a></li>";
echo "<li><a href='#'><span>Update profile data</span></a></li>";
echo "<li><a href='#'><span>Company</span></a></li>";
echo "<li class='last'><a href='#'><span>Contact</span></a></li>";
}
else
{
echo "<li class='active'><a href='#'><span>NO PROFILE</span></a></li>";
}
?>
登录表单 - webi/login/index.html:
<form class="form" method="POST" action="login-handler">
<input type="text" name="httpd_username" value="" placeholder="Username">
<input type="password" name="httpd_password" value="" placeholder="Password">
<button type="submit" name="login" id="login-button">Login</button>
<input type="hidden" name="httpd_location" value="http://my.server.addr/webi/profile" />
</form>
.htaccess 用于登录表单所在的目录 - webi/login/htaccess:
Require all granted
.htaccess 用于登录处理程序目录 - webi/login/login-handler/.htaccess
SetHandler form-login-handler
AuthFormProvider ldap
AuthType form
AuthFormLoginRequiredLocation "http://my.server.addr/webi/login/index.html"
AuthName "LDAP"
AuthLDAPURL "ldap://ldap.server.ip/ou=users,dc=example,dc=com"
Require valid-user
Session On
SessionEnv On
SessionCookieName session path=/
SessionCryptoPassphrase secret
SessionMaxAge 900
谢谢)
最佳答案
我找到了这个问题的部分解决方案。可以使用 _SERVER['PHP_AUTH_USER'] 访问通过登录表单例份验证传递的用户名。
我仍然无法访问密码。
感谢这篇文章 - http://software.danielwatrous.com/access-apache-ldap-authentication-details-in-php/
关于php - 登录 Apache 后如何将凭据传递给 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33597753/