1. 程式人生 > >node 登入攔截跳轉,中介軟體使用和理解

node 登入攔截跳轉,中介軟體使用和理解

使用node模組:
parseurl :解析與記憶化的URL
express-session:會話的資料儲存伺服器端,

中介軟體是什麼?

  • 就像流水線一樣。
  • 第一個人把雞蛋扔到傳送帶上。
  • next第二個人把雞蛋煮熟。
  • next第三個人把把雞蛋殼打碎。
  • next第四個人把蛋殼剝掉。
  • next第五個人吃雞蛋。

    中介軟體是對多個步驟的封裝
    把2 3 4封裝成中介軟體。
    就變成了第一個人把雞蛋扔到傳送帶上。
    next 加工中介軟體處理雞蛋。
    next 吃雞蛋。(引用知乎使用者)

node 登入攔截跳轉程式碼


var parseurl = require('parseurl'
) var session = require('express-session') //設定session配置 app.use(session({ resave: false, //重新儲存 saveUninitialized: true, // secret: 'keyboard cat',//通過設定的 secret 字串,來計算 hash 值並放在 cookie 中,使產生的 signedCookie 防篡改。 cookie:{ maxAge: 1000*60*60*24}//失效時間 })); app.use(function (req, res, next) { var
token = req.session.token; var pathname = parseurl(req).pathname; //判斷是否登入入 if(!token){ //未登入清空token輸出給模板值 token = req.session.token = null; res.locals.user=null; app.locals.user=null; ///member和admin的路徑登入後才能進入 if(/^\/member/g.test(pathname)||/^\/admin/g
.test(pathname)){ //跳出 return res.redirect('/login'); }else{ next(); } }else if(token){ //已登入 //輸出值到模板,res.locals,不前頁面輸出,app.locals是模板全域性出輸 res.locals.user=JSON.parse(token); app.locals.user=JSON.parse(token); next(); }); } })

Node.js 技術交流: 293851491

相關推薦

node 登入攔截,中介軟體使用理解

使用node模組: parseurl :解析與記憶化的URL express-session:會話的資料儲存伺服器端, 中介軟體是什麼? 就像流水線一樣。 第一個人把雞蛋扔到傳送帶上。 ne

Spring Security4.1.3實現攔截登入後向登入頁面方式(redirect或forward)返回被攔截介面

一、看下內部原理 簡化後的認證過程分為7步: 使用者訪問網站,打開了一個連結(origin url)。 請求傳送給伺服器,伺服器判斷使用者請求了受保護的資源。 由於使用者沒有登入,伺服器重定向到登入頁面 填寫表單,點選登入 瀏覽器將使用者名稱密碼以表單形式傳送給伺

【技術貼】解決127.0.0.1http://localhost均被攔截到另一個網頁

很艱難的歷程。 今天安裝一個OA系統,要用到http://127.0.0.1輸入完成之後,可以進入安裝介面,but,我輸入完了之後,自動跳到了129129垃圾網站,艹,我真TM服了,我把本地連線網線都拔掉了,它還是可以訪問到這個網站,真是流氓網站啊,我又去下載DNS劫

PYQT5登入介面主介面方法

該問題,有很多種方法,但是很多方法要麼這個有問題,要麼那個有問題,最後終於找到一種沒問題的方法。記錄一下: 參考地址:https://www.jianshu.com/p/d18ff36a78d6?from=singlemessage   Login.py(登入視窗)檔案 import

C# 實現登入介面

Program.cs檔案新增如下內容 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Appl

DAY85-Django框架(十五) 中介軟體CSRF跨站偽裝請求

一、中介軟體 1.定義 ​ 中介軟體顧名思義,是介於request與response處理之間的一道處理過程,相對比較輕量級,並且在全域性上改變django的輸入與輸出。因為改變的是全域性,所以需要謹慎實用,用不好會影響到效能。 ​ 每次請求到檢視之前,或者響應到瀏覽器之前都會經過中介軟體的篩選 2

通過ModelForm實現使用者登入驗證,引入中介軟體

  自定義中介軟體 需要在settings.py MIDDLEWARE中介軟體 中新增自定義中介軟體(相對於專案的絕對路徑.檔案.類) 類需要繼承MiddlewareMixin,MiddlewareMixin繼承object(MiddlewareMixin原始碼在csrf中可以找到) 可以自定

web伺服器、Web中介軟體Web容器的區別

目錄 Web伺服器 中介軟體 容器 總結 Web開發的選擇 我們經常會被Web伺服器、Web容器和Web中介軟體這三個概念搞混。因為我們常見的很多網站要麼是由IIS搭建,要麼是由Apache、Tomcat、Ngnix搭建。所以,我們會把他們都叫成是Web伺服器,因為他們都

sanic中介軟體監聽器

一:中介軟體 中介軟體是伺服器在請求之前或之後執行的功能,他們可以用來修改修改使用者定義處理函式的請求或相應。 Sanic提供兩種型別的中介軟體:請求和響應。 兩者都是使用@app.middleware裝飾器宣告,兩個裝飾器分別需要傳入一個代表其型別的引數:request和response, 下面舉一

(javaweb)jsp登入頁面後出錯:The requested resource is not available.

想做一個簡單的登入系統,實現“輸入正確的賬號密碼後會進入首頁,錯誤則顯示警告“的功能。不過在測試時,儘管能進入登入介面,並且輸入了正確的賬號和密碼,但是點選登入時,網頁提示錯誤了,如圖 網上提供的解決方法有許多,最多還是說Tomcat的web.xml檔案配置錯

MFC(使用者密碼登入視窗)訊息模擬

BOOL CMFC3App::InitInstance() { CLoginDlg lDlg; int nRet= lDlg.DoModal(); if(IDCANCEL==nRet) return FALSE; CMFC3Dlg dlg; m_pMainWnd = &

Django寫一個裝飾器:從首頁點選詳情頁,如已登入,進詳情頁;如未登入登入頁面,登入成功後,至詳情頁

有的網站需求,如果使用者未登入,能夠進入首頁,但當點選想要進入詳情頁的時候,就會跳轉到登入頁面,登入完成之後,有的需求需要進入首頁;有的需要進入點選登入之前你的意向頁面 第一種:登入之後,進入首頁。 第二種:登入之後,進入登入之前你點選想進入的意向頁面 那麼,對於第一種,登入之後,進入首

JSP中頁面response.sendRedirect()request.getRequestDispatcher()的區別

Java Web開發中,採用MVC模式的時候,在控制器完成模型的呼叫之後會選擇介面對使用者響應,用常有2種方式 1,通過response物件的sendRedirect方法重定向: response.

go web: 3 中介軟體路由

中介軟體 中介軟體的本質來看,就是在執行handler的前(後)先執行一個自定義的handler而已。那問題變成,go web中,每個handler是怎麼執行的。 答案在mux := http.NewServeMux()中,稍微閱讀下原始碼,我們就能得出,m

django登入許可權

COOKIE和SESSION有什麼區別:1:session 在伺服器端,cookie 在客戶端(瀏覽器)。2:session 預設被存在在伺服器的一個檔案裡(不是記憶體)。3:session 的執行依賴 session id,而 session id 是存在 cookie 中

實現登入頁面登入成功後過程(個人理解學習,程式碼不完整)

function login()    {        var userName = document.getElementById("loginName").value;//通過ID獲取元素        var pwd = document.getElementById

node.js的body-parser中介軟體

現在最新版本的express,已經不包含bodyParser方法了。就是說不能再使用下面這種方法來引用bodyParser了。 var app = express(); app.use(express.bodyParser()); 最好單獨 npm in

Shiro整合CAS登入成功地址問題

最近做了Shiro與CAS的整合,第一次深入Shiro,發現Shiro是一個不錯的安全框架,cas是另外一個搭建做的。 登入成功之後有3種頁面跳轉選擇,這是根據觸發登入操作的頁面分類的。 1. 當前頁面不需要登入即可訪問,點選登入按鈕,登陸成功之後

ssm框架+前端ajax登入,解決登入回原連結問題

當前環境:       spring做全連結攔截,在攔截器中進行登入驗證,登入方法在前端觸發使用的是ajax,登入方式呼叫成功後,將在session中儲存登入的UUID,登入成功後的處理直接使用頁面跳轉到主頁(window.location.href)。 出現的變更:   

C# 實現 MySql資料庫連線 登入介面

前言:連線上篇文章,在上文C#登入並跳轉介面基礎上,修改登入視窗使用者資訊的驗證方式,從簡單字串匹配判斷,改進到連線MySql資料庫進行驗證。正文:1.Mysql資料庫的建立2.Visual Studio 2017 的設定(2) 安裝好以後,找到它的安裝路徑,一般都是C:\P