用户通过会话cookie进行身份验证后的Nginx proxy_pass

时间:2011-03-06 20:00:29

标签: cookies proxy nginx localhost

我使用nginx作为代理服务器,监听在localhost上运行的某些服务。但在我想要proxy_pass发生之前,用户应该通过cookie或登录提示进行身份验证。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果用户没有登录cookie,您应该有一些重写规则将用户重定向到登录页面。然后,登录页面将设置正确的cookie并将用户重定向回正确的页面(如果用户通过了身份验证测试)。也许是这样的:

location / {
    if ($cookie_login_token = "") {
        rewrite .* /login-page break;
    }
}

然后你的登录页面应该设置一个值为“login_token”的cookie。虽然如果用户知道你正在监听什么cookie(例如通过观看其他用户登录),这种设置很容易规避,所以我建议在真实服务器上进行更强大的测试。