2015-10-14 191 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