Nginx auth_basic 时间限制

14

我正在使用nginx和auth_basic模块来保护我的开发服务器,但是我似乎找不到指定“身份验证”过期时间的方法。

我希望能够强制nginx在每6小时要求输入密码。有什么方法可以做到吗?如果没有,是否有可接受的解决方法?

2个回答

14

这可能不可能。 在nginx HttpAuthBasicModule页面上似乎没有任何文档表明您可以超时基本HTTP验证。

Authorization头的HTTP规范也没有指定超时机制。 如果您需要超时,我不认为您能够仅仅依赖基本身份验证,除非您还要开发网络应用程序。

如果您正在开发网络应用程序,则可以在cookie中维护会话,并在一段时间内不活动后超时会话。 当会话超时完成时,请使用您的Web应用程序发送以下标头:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic Realm="MyApp"

这将提示浏览器再次请求凭据。如果您的Web应用程序需要访问用户的标识,则应该REMOTE_USER CGI环境变量中找到它。

要使用此技术有效地提供静态资源,XSendfile可能会很有用。


CGI不会自动提供REMOTE_USER。您可以通过fastcgi_param REMOTE_USER $remote_user;来设置它。 - bzeaman
这种方法并不是百分之百可靠的。如果在重新提示后,您点击了“取消”并刷新页面,那么您将会再次被登录。 - user3163495

7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接