Apache 身份验证:失败时重定向,可靠吗?

发布于 2024-08-11 13:32:57 字数 204 浏览 4 评论 0原文

我已将 ErrorDocument 401 设置为指向我网站的帐户创建页面,但并非所有浏览器似乎都支持此重定向(Safari)。

此外,其他浏览器(Firefox、Chrome)永远不会停止询问密码并显示 ErrorDocument。这导致大量用户在多次尝试密码后放弃尝试,而没有看到帐户创建页面。

有没有什么方法可以使重定向更加可靠,而不完全破坏基本身份验证?

I've set my ErrorDocument 401 to point to my website's account creation page, but not all browsers seem to honor this redirect (Safari).

Also, other browsers (Firefox, Chrome) never quit asking for the password and show the ErrorDocument. This causes a good number of users to give up trying after many password attempts without seeing the account creation page.

Is there any way to make the redirect more reliable, without trashing basic authentication altogether?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尬尬 2024-08-18 13:32:57

您的问题的简单答案是否定的,如果不实现自定义身份验证,您就无法使其变得更可靠。

Firefox 和 Chrome 显示您在 ErrorDocument 401 指令中指定的页面的唯一方法是单击“取消”按钮。此外,没有使用 401 HTTP 代码发送重定向;相反,它是用 ErrorDocument 401 指令指定的文档内容。您可以使用 HTML 元标记进行重定向:

<Location "/protected">
    AuthUserFile /path/to/users
    AuthName "This is protected area"
    AuthGroupFile /dev/null
    AuthType Basic
    Require valid-user

    #ErrorDocument 401 /register.html
    ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=/register.html\"></html>"
</Location>

问题的可能解决方案是创建自定义基本 HTTP 身份验证模块或使用支持基本 HTTP 身份验证挂钩的 php 等语言

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

The simple answer to your question is no, you can't make this more reliable without implementing custom authentication.

The only way that Firefox and Chrome will display page that you specified in the ErrorDocument 401 directive is if you click cancel button. Also, there is no redirect sent with the 401 HTTP code; rather, it is a content of the document specified with ErrorDocument 401 directive. You can do redirect using HTML meta tag:

<Location "/protected">
    AuthUserFile /path/to/users
    AuthName "This is protected area"
    AuthGroupFile /dev/null
    AuthType Basic
    Require valid-user

    #ErrorDocument 401 /register.html
    ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=/register.html\"></html>"
</Location>

Possible solutions to your problem are to create custom basic HTTP authentication module or to use language like php that supports basic HTTP authentication hooks

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

猫九 2024-08-18 13:32:57

我怀疑您的 Firefox 和 safari 用户没有在用户名(即 MYDOMAIN\USERNAME)之前输入域。 Firefox 中有一些设置允许传递身份验证;我不知道野生动物园。

I suspect that your firefox and safari users are not entering the domain before the username i.e. MYDOMAIN\USERNAME. There are some settings in firefox that will allow pass-through authentication; I don't know about safari.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文