記一次使用nginx中auth_request進行鑑權

使用nginx中auth_request進行鑑權

使用背景

由於項目中有這樣的需求
對訪問靜態文件的路徑進行鑑權
舉例:瀏覽器訪問 xxx.com/userId/a.png
這時候我們要對路徑中userId進行鑑權,確認這個userId是否有權限訪問這個a.png 可能描述有點偏差 準確點描述應該是瀏覽器當前登錄的用戶是否和這個url的userId是否一致,總感覺還是不對 但應該差不多這個需求把

配置

話不多說直接上配置,不能理解的地方我都寫了備註應該都看得懂,不做過多解釋

	#/userId/a.png 
	location  ~/(.*)/(.*){
		auth_request /app/api/auth;
		#這裏的$1 $2分別代表被正則匹配的內容
		#$1  = userId
		#$2  = a.png
		set $auth_request_uri "http://127.0.0.1:9999/app/api/auth/$1/$2";
	    alias  d:/web/$2;
	}  
	 
	 location = /app/api/auth {
		internal;
		proxy_pass              $auth_request_uri;
		proxy_pass_request_body off;
		proxy_set_header        Content-Length "";
		proxy_set_header        X-Original-URI $request_uri;
	}

補充

nginx 會對auth_request_uri 返回的狀態碼做判斷200 , 401 ,403 所以後續還要對401、403做處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章