2015-10-14 324 views
1

我试图通过使用nginx基本身份验证来保护我的webapp。Nginx - 自定义登录页面

我正在寻找的是一种强制浏览器显示我的自定义html登录页面而不是默认登录弹出窗口但仍处理授权过程的方法。

我尝试省略'WWW-Authenticate'标题,弹出窗口不显示,但我不知道如何强制浏览器为每个请求添加'Authorization'标头。

特此nginx.conf:

location /{ 
      auth_basic "Restricted"; 
      auth_basic_user_file htpasswd; 
      proxy_pass http://tomcat:8080/; 
      error_page 401 /login.html; 
    } 

    location = /login.html { 
      root html; 
    more_clear_headers 'WWW-Authenticate';    
    } 

回答

0

如果你真的想这样做。最简单的方法是将用户名和密码放入网址中。基本认证支持这一点。更改为以下格式的所有请求,它会工作:

"http://" + username + ":" + password + "@example.com" 
+0

感谢,你可以请给这样的实现nginx的配置文件的一个例子,我不能要求用户在U/P添加到URL所以我想它必须通过会话内部。 – rivki

+0

我想你将不得不处理它的客户端,使用JS来获取用户名和密码,并使用它改变window.location.href –

+0

我认为op想要做这样的事情https://github.com/shopware/devdocs/斑点/主/源极/博客/ _posts/2015-03-02-sso-with-nginx-auth_request.md。作为url的一部分发布用户/密码在现代世界中完全不安全 – Reishin