摘要:最近做項目,遇到單點登錄,方法是在前端做代理。調(diào)通之后開始思考如何在本地開發(fā)環(huán)境調(diào)試單點登錄這一功能。
最近做項目,遇到單點登錄,方法是在前端做nginx代理。
應(yīng)用系統(tǒng)需要配合做如下調(diào)整:
1、使用“*.頂級域名”訪問,確??梢院蚄AM共享cookie
2、對來自Nginx代理的訪問放開登錄認(rèn)證(安全起見,對來自其他IP的訪問應(yīng)該禁止)
3、應(yīng)用系統(tǒng)從請求頭kam_remote_user中讀取登錄用戶(Nginx會將登錄用戶寫入請求頭)
4、如果應(yīng)用系統(tǒng)需要KAM的全局唯一token,可以從cookie中讀取kam_sso_token的值
剛開始調(diào)試的時候是在正式環(huán)境,每次修改完代碼需要重新構(gòu)建才能看到效果,
實在繁瑣,還產(chǎn)生了一堆不必要的commit 歷史。調(diào)通之后開始思考如何在本地開發(fā)環(huán)境調(diào)試單點登錄這一功能。
不辱使命,研究出來了,以下是步驟。
location / { root /usr/share/nginx/html; auth_request /kam_auth; error_page 401 = @error401; auth_request_set $kam_remote_url $upstream_http_kam_remote_url; proxy_set_header kam_remote_user $upstream_http_kam_remote_user; } location /kam_auth { internal; proxy_set_header kam_remote_url "$scheme://$http_host$request_uri"; proxy_set_header Host $host; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_pass 單點登錄頁面網(wǎng)址/auth; } location @error401 { add_header Set-Cookie "NSREDIRECT=$kam_remote_url;Path=/;Domain=頂級域名"; return 302 單點登錄頁面網(wǎng)址; }
配置完后發(fā)布到正式環(huán)境,單點登錄功能已可用
繼續(xù)配置,我們的目標(biāo)是 dev 環(huán)境也能單點登錄!
2、虛擬域名修改hosts文件 C:WindowsSystem32driversetc
加入 127.0.0.1 dev.testgroup.com
之后,把原來的dev運(yùn)行地址 http://localhost:8080 換成 http://dev.testgroup.com:8080
發(fā)現(xiàn)報錯 Invalid Host header
解決方法:在webpack.dev.conf.js devServer對象中添加:disableHostCheck: true
devServer: { ... disableHostCheck: true },
重新 run dev 后發(fā)現(xiàn)可以訪問了
3、下載 nginxnginx官網(wǎng)上下載相應(yīng)的安裝包
下載進(jìn)行解壓,將解壓后的文件放到自己心儀的目錄下。window的cmd窗口,進(jìn)入到nginx目錄,
使用 start nginx.exe 進(jìn)行nginx的安裝,如下圖所示
安裝成功,后在瀏覽器地址欄輸入:127.0.0.1,會看到如下圖所示的nginx歡迎界面
如果看不到,那么說明你安裝失敗,你可以到你的 nginx 目錄下的logs文件夾下的error下查看,
如果發(fā)現(xiàn)里面寫著:
說明你的80端口被占用了,或是cmd命令進(jìn)入dos下執(zhí)行:netstat -aon | findstr :80 查看80端口是否被占用,如果占用,那么你需要修改注冊表,如下步驟:
1、打開注冊表:regedit
2、找到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesHTTP
3、找到一個REG_DWORD類型的項Start,將其改為0
4、重啟系統(tǒng),System進(jìn)程不會占用80端口
此時此刻,你可以再次執(zhí)行 相應(yīng)的命令:start nginx.exe 命令了。
nginx相關(guān)命令:
start nginx.exe
nginx.exe -s stop //停止nginx
nginx.exe -s reload //重新加載nginx
nginx.exe -s quit //退出nginx
因為我們已經(jīng)配置了虛擬域名,所以在瀏覽器地址欄輸入 http://dev.testgroup.com 也是同樣的 nginx welcome 頁面
3、配置本地 nginx 文件修改 nginx 目錄下的 conf/nginx.conf 文件
location / { root html; index index.html index.htm; auth_request /kam_auth; error_page 401 = @error401; auth_request_set $kam_remote_url $upstream_http_kam_remote_url; proxy_set_header kam_remote_user $upstream_http_kam_remote_user; proxy_pass http://dev.testgroup.com:8080; } location /kam_auth { internal; proxy_set_header kam_remote_url "$scheme://$http_host$request_uri"; proxy_set_header Host $host; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_pass 單點登錄頁面網(wǎng)址/auth; } location @error401 { add_header Set-Cookie "NSREDIRECT=$kam_remote_url;Path=/;Domain=頂級域名"; return 302 單點登錄頁面網(wǎng)址; }
現(xiàn)在,在瀏覽器地址欄輸入 http://dev.testgroup.com 發(fā)現(xiàn)自動跳轉(zhuǎn)到了單點登錄頁面,
登錄后返回到了我們之前的dev.testgroup.com頁面
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/40205.html
摘要:極大地降低了平臺的復(fù)雜度,更加方便企業(yè)開發(fā)人員實現(xiàn)各種業(yè)務(wù)應(yīng)用,幫助企業(yè)輕松打造基于云計算的軟件基礎(chǔ)設(shè)施。本文將從實際案例出發(fā),結(jié)合不同的使用場景,為各位介紹的這些特性。是未來數(shù)據(jù)中心操作系統(tǒng)的核心。 0.前言 隨著 Docker 技術(shù)的日漸火熱,本就火爆的云計算行業(yè)進(jìn)入了一個加速階段。云計算最大的特點是彈性和靈活,幫助企業(yè)應(yīng)對復(fù)雜的業(yè)務(wù)需求。由于云計算的IT構(gòu)架和上一代的IT構(gòu)架有很...
摘要:本文同步在個人博客上,歡迎關(guān)注這篇文章整理了在前端開發(fā)中,在開發(fā)環(huán)境下使用重寫及代理功能的方法。表示該規(guī)則是使用正則定義的,區(qū)分大小寫。因此牢記在上下文中使用,而在上下文中使用。 本文同步在個人博客shymean.com上,歡迎關(guān)注 這篇文章整理了在前端開發(fā)中,在開發(fā)環(huán)境下使用nginx重寫uri及代理功能的方法。 參考 nginx中文文檔 前端開發(fā)者必備的 Nginx 知識 Ngin...
摘要:傳給微信的參數(shù)進(jìn)行轉(zhuǎn)義其中參數(shù)是可以被微信原樣返回,這樣就可以按你自己的需求完成反向代理了??梢匀サ舸罱y試環(huán)境另一條運(yùn)維的原則是不要在生產(chǎn)環(huán)境上直接改,在測試環(huán)境修改并經(jīng)過測試,測試通過后,再上傳到生產(chǎn)環(huán)境。 前言 在與第三方系統(tǒng)進(jìn)行接口開發(fā)時,需要不斷的改進(jìn)和測試,以常見的微信登錄支付和 Alipay 支付和登錄為例. 相對來講 Alipay 做起來容易一些, 一是接口 SDK 封...
閱讀 1580·2021-10-11 10:59
閱讀 2019·2021-09-09 11:36
閱讀 1537·2019-08-30 15:55
閱讀 1388·2019-08-29 11:20
閱讀 3126·2019-08-26 13:39
閱讀 1537·2019-08-26 13:37
閱讀 2051·2019-08-26 12:11
閱讀 1387·2019-08-23 14:28