在nginx基本身份验证成功后设置cookie并重定向

时间:2017-07-15 22:13:57

标签: nginx

如何在NGINX auth_basic在同一台服务器上成功后立即设置cookie并重定向?

似乎需要一些组合satisfyauth_basicauth_request,但文档仅涵盖将身份验证外包给某些外部服务器的情况。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我觉得应该有更好的方法,但如果你使用内部位置,你可以欺骗try_files为你做这件事。

location /cookie-drop {
  auth_basic "Please authenticate";
  auth_basic_user_file /your/htpasswd/file;
  # Using null as a hardcoded nonexistent file
  try_files null @cookie-drop;
}

location @cookie-drop {
  internal;
  add_header Set-Cookie "token=foo;Domain=example.com;Path=/";
  return 302 https://$host/
}

如果您将return 302放在/cookie-drop位置,则会忽略auth_basic设置。 try_files设置是我唯一可以找到重定向到这样的内部位置的设置。也许有更好的方法。