簡體   English   中英

如何將用戶數據存儲到 node js express-session

[英]How to store user data into node js express-session

我在nodeJS上使用expressexpress-session與 mysql 。 我也可以設置 cookie 和會話。

這是我的代碼:

app.use(cookieParser('3CCC4ACD-6ED1-4844-9217-82131BDCB239'));
session({resave: true, saveUninitialized: true, secret: '2C44774A-D649-4D44-9535-46E296EF984F', cookie: { maxAge: 600000 }}));

我可以在瀏覽器上看到一個名為connect.id的 cookie 已被設置。 但是現在我無法理解從 mysql 數據庫中獲取用戶 ID 和用戶名后如何存儲它們。

已經谷歌搜索但無法找到解決方案。 請幫助我。 謝謝!!

這是設置會話的方法

const session = require('express-session');
const MongoDBStore = require('connect-mongodb-session')(session);
const store = new MongoDBStore({
  uri: MONGODB_URI,
  collection: 'sessions'
});
app.use(session({
  secret: 'secret string',
  resave: false,
  saveUninitialized: false
  store: store, /* store session data in mongodb */ 
  cookie: { /* can add cookie related info here */ }
}));

為了在會話中存儲數據,您只需執行以下操作,

req.session.user = user;
req.session.isLoggedIn = true;

訪問方式相同。 這些值將使用會話 cookie 作為查找值存儲在服務器端。

您不會將這些存儲在 cookie 中,在該用戶第一次登錄時,您將 cookieID 與數據庫中的該用戶名鏈接,現在每次用戶連接時,您首先在數據庫中查找 cookieID,如果它不存在,然后您發送他需要登錄的用戶。 如果數據庫中有注冊,那么您就知道這是受信任的用戶。

您可以使用用戶名作為鍵,因此如果相同的用戶名帶有不同的 cookieID,它會被覆蓋,無論如何,您最好在數據庫中保存一個時間戳,並刪除那些確定為舊的寄存器。

這基本上是會話所做的,它在 cookie 中有一個 id 並保存與該 id 相關的變量,我在快速會話方面有過糟糕的經歷,所以我更喜歡使用 cookie 並自己處理會話,這是我的推薦方式。

在節點中,獲取 cookie:

req.cookie.cookieName

並設置一個cookie:

res.cookie('cookieName', cookieValue);

請永遠不要將私人數據保存在cookieValue因為它可能是隱形的。

暫無
暫無

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

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