簡體   English   中英

如何讀取通過服務器端 (node-express) 上的 Passport 設置的客戶端 (react) cookie?

[英]How to read the cookie on the client side (react) that was set via Passport on the Server side (node-express)?

如何讀取通過服務器端 (node-express) 上的 Passport 設置的客戶端 (react) cookie?

cookie 設置正確,可以在服務器端進行序列化和反序列化,如下面的代碼所示:

passport.serializeUser(function(user, done) {
  done(null, user.id);
});

passport.deserializeUser(function(id, done) {
  User.findById(id, function(err, user) {
    done(err, user);
  });
});

如何在客戶端(React)讀取這個 cookie?

我對 cookies 沒有太多經驗,但我見過以下解決方案:

import React from 'react';
import Cookies from 'js-cookie';

class App extends React.Component {
     this.state = {
        username: Cookies.get('username')
     }

//  more code....
}  


import React from 'react';
// other imports...
import Cookies from 'universal-cookie';

const cookies = new Cookies();

class App extends React.Component {
     this.state = {
        username: cookies.get('username')
     }

//  more code....  

還有許多其他人......但似乎要讀取 cookie,您必須知道usernamekey才能獲得它的值。 由於 Passport.js 在serializeUser方法中創建了我的 cookie,我不知道key是什么。 有誰知道關鍵值是什么或如何讀取護照創建的cookie?

cookie 將僅 HTTP 且在客戶端不可讀。 但是,您可以輕松地做到這一點:

  • 創建服務器端API路由
  • 也許在 GET /api/user/current
  • 此端點執行上述 cookie 反序列化,然后返回 JSON object

然后,客戶端瀏覽器代碼只需對上述端點執行 Ajax GET。

暫無
暫無

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

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