【发布时间】:2011-05-11 22:55:43
【问题描述】:
我使用 nginx 作为代理服务器,监听在 localhost 上运行的一些服务。但在我希望 proxy_pass 发生之前,用户应该通过 cookie 或登录提示进行身份验证。
如何解决这个问题?
【问题讨论】:
标签: cookies proxy nginx localhost
我使用 nginx 作为代理服务器,监听在 localhost 上运行的一些服务。但在我希望 proxy_pass 发生之前,用户应该通过 cookie 或登录提示进行身份验证。
如何解决这个问题?
【问题讨论】:
标签: cookies proxy nginx localhost
如果用户没有登录 cookie,您应该有一些重写规则将用户重定向到登录页面。然后登录页面将设置正确的 cookie 并将用户重定向回正确的页面(如果用户通过了身份验证测试)。也许是这样的:
location / {
if ($cookie_login_token = "") {
rewrite .* /login-page break;
}
}
然后你的登录页面应该设置cookie“login_token”一些值。虽然如果用户也知道你在听什么 cookie(例如通过观察其他用户登录),那么这种设置很容易绕过,所以我建议也在真实服务器上进行更强大的测试。
【讨论】: