nginx auth_basic时间限制

erg*_*elo 10 authentication nginx

我正在使用nginx和auth_basic模块保护我的开发服务器,但我似乎无法找到一种方法来指定"身份验证"到期的时间间隔.

我希望能够强制nginx每隔6小时询问一次密码.有没有办法做到这一点?如果没有,什么是可接受的解决方法?

Jon*_*han 11

这可能是不可能的.在nginx HttpAuthBasicModule页面上似乎没有任何文档建议您可以超时基本HTTP身份验证.

HTTP规范Authorization头还没有指定超时机制.如果您需要超时,我不希望您能够依赖基本身份验证,除非您还面向Web应用程序.

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

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic Realm="MyApp"
Run Code Online (Sandbox Code Playgroud)

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

使用此技术有效地提供静态资产XSendfile 可能很有用.


Sha*_*lan 7

如果您仍在寻找此问题的解决方案,我相信HttpAuthDigestModule正是您所寻找的.

我今天在网上冲浪时发现它.

以下是链接:

http://wiki.nginx.org/HttpAuthDigestModule

https://github.com/samizdatco/nginx-http-auth-digest

希望它能帮到你.