我在本地网络上部署了一个简单的基于PHP的应用程序(http://www.bigprof.com/appgini/)。我想要一种方法来实现用户自动登录的方式。安全性不是问题。是否可以修改登录页面以接受http://user:pass@app.server.lan/?
之类的内容This is the source of the login page,如果有帮助的话。
非常感谢任何帮助。
答案 0 :(得分:4)
PHP基础身份验证凭据在$_SERVER
superglobal in the keys PHP_AUTH_USER
and PHP_AUTH_PW
.
来自http://php.net/manual/en/features.http-auth.php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
有关更复杂的身份验证方法,请查看
答案 1 :(得分:3)
http://user:pass@app.server.lan/正在使用htaccess auth
代替它,你可以使用,
http://app.server.lan/?user=user&pass=pass
登录后重定向到
<强> .htacccess 强>
AuthUserFile /path/to/your/password/file/.htpasswd
AuthGroupFile /dev/null
AuthName "Members Area"
AuthType "Basic"
<Limit GET POST>
require valid-user
</Limit>
答案 2 :(得分:0)
自动登录网站的可接受方式是使用“记住我”功能。使用cookies。你需要帮助来实现它吗?
安全总是一个问题,特别是如果你共享托管(你可以妥协整个服务器)。
答案 3 :(得分:0)
回应@ AaronJAnderson关于对另一种解决方案开放的评论我想建议:
http://alpho011.hubpages.com/hub/Use-Windows-Login-in-PHP-Applications
当然,假设您使用的是基于Windows的网络,拥有域和正确的网络设置,并且可以访问LDAP(以及以后的Active Directory,如果有的话)
这篇文章不是很长,它有代码;希望您可以调查一下,因为即使您在安全的网络域上,在URL中发布敏感信息仍然会在对等级别上发生危险.. :(
[编辑]回应@ AaronJAnderson关于整合的评论:
创建一个登录表单以接受用户的用户名和密码,并在提交表单后,使用ldap_connect
连接到您的域名。然后,如果成功,请使用ldap_bind
提交用户名(使用@whateverdomain
向域附加域名)和密码到你的ldap主机(如果你没有这个信息,你可以向你的系统/服务器管理员寻求帮助) - 如果你成功那么你就是确认用户提供了正确的用户名和密码。它主要出现在文章中,但我也在ldap_connect
和ldap_bind
上放置了链接。我希望这可以提供帮助。