.htaccess来自php脚本的身份验证,以防止出现浏览器对话框

时间:2010-04-22 21:35:16

标签: php authentication .htaccess dialog

使用php我对用户进行身份验证,然后在幕后,再次使用单个.htaccess用户名&密码。这对所有用户都是一样的,但我不希望他们再次输入用户名和密码,现在他们可以进入受密码保护的目录。我不想使用http://username@password:somedomain.com

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

如果您想避免多次登录但需要HTTP身份验证,则可以使用 HTTP身份验证进行实际登录。这是因为PHP可以发出并响应这些标题。

http://php.net/manual/en/features.http-auth.php

这样用户就会收到弹出窗口,PHP可以读取它并做出相应的响应,浏览器会通过后续请求传递它,从而消除了进一步的提示。

注意:此解决方案不适用于CGI版本的PHP。

答案 1 :(得分:2)

你不应该这样做。

或者:

  1. 将代码添加到.htaccess受保护目录以使用您的PHP身份验证方案并删除.htaccess身份验证。

  2. 编写一个新的PHP页面/脚本,通过该页面/脚本,经过身份验证的用户将访问所有受保护的内容。将受保护的内容移出Web根目录,或使用.htaccess文件拒绝所有访问。您的脚本将能够访问这些文件,但用户必须通过该脚本才能访问这些文件。

答案 2 :(得分:0)

抱歉,我不相信这是可能的(除非您想使用用户名:pass @ url scheme)。您可以在幕后编写一些ajax来执行此操作,这意味着浏览器将记住该区域的auth(可能,我从未尝试过它)。但无论如何你仍然需要用户名/密码。

为了不在浏览器上以明文形式传输密码的安全性(我假设你使用https通过网络传输密码,或者如果不是你应该的话!)我认为这对你来说有点烦人用户,但在我看来并不是很麻烦。

当然你可以在PHP中的其他文件夹上进行身份验证,这可以解决问题,或者将所有受保护的代码放在一个带有一个HTTP身份验证的地方,但我认为你不想(或不能)做此