Node.js。加密与签名cookie

Node.js。加密与签名cookie,node.js,session,encryption,cookies,passport.js,Node.js,Session,Encryption,Cookies,Passport.js,我想从我的cookie中检索值 我正在使用passport.js,在这个任务中,我尝试了不同的方法 我运行req.cookies这给了我以下信息: 's:x05d6V5Dhf6efFGjIkO26Ka1.imN4lT7OhW83Nc9Z7vw5dFbCoQhanP3aa37iyNWQyvU' } 这是签名cookie还是加密cookie 开头的's:'使它看起来像是一个签名的,但是当我运行req.signedCookies时,我找回了一个空对象{}。那么这个cookie是经过签名还是加密的呢

我想从我的cookie中检索值

我正在使用
passport.js
,在这个任务中,我尝试了不同的方法

  • 我运行
    req.cookies这给了我以下信息:

    's:x05d6V5Dhf6efFGjIkO26Ka1.imN4lT7OhW83Nc9Z7vw5dFbCoQhanP3aa37iyNWQyvU' }
    
    这是签名cookie还是加密cookie

    开头的
    's:'
    使它看起来像是一个签名的,但是当我运行
    req.signedCookies时,我找回了一个空对象
    {}
    。那么这个cookie是经过签名还是加密的呢

    然后我运行:
    req.sessionID返回了以下内容:

    x05d6V5Dhf6efFGjIkO26Ka1
    
    正如你所看到的,这也包含在我的cookie中,在点之前。所以我猜
    sessionId
    存储在我的cookie中,对吗

    然后我运行
    req.secret
    返回
    未定义的

  • 是会话中的秘密,在此声明:

    app.use(express.session({secret:'blablabla'}));
    
    用于对cookie进行签名或加密

  • cookie签名模块只能对cookie进行取消签名,而不能对其进行解密-是否正确? 它可以基于上一个会话密钥取消签名吗

  • 最后,这个cookie存储在哪里?在我的mongo db中


  • 点后面的部分:

    imN4lT7OhW83Nc9Z7vw5dFbCoQhanP3aa37iyNWQyvU
    
    是会话id的签名:

    x05d6V5Dhf6efFGjIkO26Ka1
    
    也就是说,会话id用密码加密,并用一个点附加到会话id以组成cookie

    这个秘密不包含在cookie中

    如果您提供了正确的信息,cookie签名模块可以取消对cookie的签名:

    cookie-signature.ungisn(`${the_original_sessionid}.${the_encypted_sessionid}`,secret)