如何在NGINX auth_basic在同一台服务器上成功后立即设置cookie并重定向?
似乎需要一些组合satisfy
,auth_basic
或auth_request
,但文档仅涵盖将身份验证外包给某些外部服务器的情况。
提前谢谢。
答案 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
设置是我唯一可以找到重定向到这样的内部位置的设置。也许有更好的方法。