2017-10-09 94 views
3

我現在正試圖在我的應用程序中應用護照模塊。什麼是passport.initialize()? (nodejs express)

我讀了一些手冊,並有說,

app.use(passport.intialize()); 
app.use(passport.session()); 

什麼是app.use(passport.initialize())究竟在做什麼?

passport.session()也許是對護照使用會話信息,

但我不知道該passport.initialize()

回答

3

passport.intialize()是初始化Passport的中間件。

Middlewares是可訪問請求對象(req),響應對象(res)和應用程序的請求 - 響應週期中的下一個中間件功能的函數。

Passport是Node認證中間件,用於認證請求。

所以基本上passport.intialize()初始化驗證模塊。

passport.session()是另一箇中間件,用於更改請求對象並將當前會話標識(從客戶端cookie)的'用戶'值更改爲真正的反序列化的用戶對象。 It is explained in detail here.

1

從Passportjs文檔想法:

在連接或快速基應用程序,passport.initialize() 中間件需要初始化Passport。如果您的應用程序 使用持久登錄會話,則也會使用passport.session()中間件必須使用 。

如果我們看看source code,我們可以看到,passport.initialize()中間件基本上護照實例添加到傳入的請求,使認證策略可以繼續進行。
如果有會話,它也被添加到請求中。