簡體   English   中英

Passport.js無狀態

[英]Passport.js Stateless

我正在使用Passport.js本地策略來處理我的應用程序中的身份驗證。 每當進行更改時,我還使用Nodemon自動刷新服務器。

問題是,每當我進行更改時,我都必須再次登錄該應用程序。 目前,這只是開發,但相同的概念將適用於處理請求的多台服務器(例如EC2負載平衡器)。 所以我的問題是,如何在保持用戶狀態的同時使Passport.js無狀態?

似乎必須要有一種方法來保留服務器之間的狀態和/或重新啟動服務器。

您有兩種選擇:

  1. 使用持久性會話存儲,例如MongoDBRedisPostgreSQL
  2. 完全不要使用會話,而應使用JSON Web令牌(又名JWT)。

如果您已經有一個共享數據庫,則第一個選項需要較少的設置,只需實例化存儲並將其傳遞給您的應用即可,例如:

const session = require('express-session');
const MongoStore = require('connect-mongo')(session);

app.use(session({
    secret: 'foo',
    store: new MongoStore(options)
}));

第二個選項需要不同的Passport策略,例如passport-jwt,或者完全放棄Passport並直接在自定義中間件中使用jsonwebtoken

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM