使用php我对用户进行身份验证,然后在幕后,再次使用单个.htaccess用户名&密码。这对所有用户都是一样的,但我不希望他们再次输入用户名和密码,现在他们可以进入受密码保护的目录。我不想使用http://username@password:somedomain.com。
有什么想法吗?
答案 0 :(得分:2)
如果您想避免多次登录但需要HTTP身份验证,则可以使用仅 HTTP身份验证进行实际登录。这是因为PHP可以发出并响应这些标题。
http://php.net/manual/en/features.http-auth.php
这样用户就会收到弹出窗口,PHP可以读取它并做出相应的响应,浏览器会通过后续请求传递它,从而消除了进一步的提示。
注意:此解决方案不适用于CGI版本的PHP。
答案 1 :(得分:2)
你不应该这样做。
或者:
将代码添加到.htaccess受保护目录以使用您的PHP身份验证方案并删除.htaccess身份验证。
编写一个新的PHP页面/脚本,通过该页面/脚本,经过身份验证的用户将访问所有受保护的内容。将受保护的内容移出Web根目录,或使用.htaccess文件拒绝所有访问。您的脚本将能够访问这些文件,但用户必须通过该脚本才能访问这些文件。
答案 2 :(得分:0)
抱歉,我不相信这是可能的(除非您想使用用户名:pass @ url scheme)。您可以在幕后编写一些ajax来执行此操作,这意味着浏览器将记住该区域的auth(可能,我从未尝试过它)。但无论如何你仍然需要用户名/密码。
为了不在浏览器上以明文形式传输密码的安全性(我假设你使用https通过网络传输密码,或者如果不是你应该的话!)我认为这对你来说有点烦人用户,但在我看来并不是很麻烦。
当然你可以在PHP中的其他文件夹上进行身份验证,这可以解决问题,或者将所有受保护的代码放在一个带有一个HTTP身份验证的地方,但我认为你不想(或不能)做此