如何在服务器端使用passport js本地用户身份验证后在客户端使用cookie显示用户信息?

Posted

技术标签:

【中文标题】如何在服务器端使用passport js本地用户身份验证后在客户端使用cookie显示用户信息?【英文标题】:How do i use cookies on the client side to display user information after passport js local user auth on the server side? 【发布时间】:2018-05-30 17:33:11 【问题描述】:

我正在为本地用户身份验证使用护照 js 和快速会话,并且在用户成功注册后,我想使用 cookie 在运行在 vue js 上的客户端上显示用户信息,例如名字或电子邮件服务器端的护照 js。我如何做到这一点?

【问题讨论】:

【参考方案1】:

您可以使用

从客户端将 cookie 保存到用户的电脑
document.cookie="email:loremipsum@dolor.com"

你可以从客户端读取它

let x = document.cookie

如果你想从 express 服务器读取它,你可以使用 cookie-parser 所以 npm install cookie-parser 然后要求它进入你的快递服务器并做 app.use

var express = require('express')
var cookieParser = require('cookie-parser')

var app = express()
app.use(cookieParser())

在 express 服务器上读取 cookie,

app.get('/',(req,res)=>
   console.log(req.cookies.email)
);

这将在服务器端显示 cookie。

【讨论】:

【参考方案2】:

有几种方法可以做到这一点:

    使用返回登录用户的用户信息的 API 端点,如 /me。每当需要显示用户信息时,调用/me 并解析返回的内容。

    使用 JWT 作为 cookie 并在其中包含用户信息。但是,一旦用户数据发生变化,您就需要更新用户的 cookie。对于相对静态的数据(例如不经常更改的名称),这可能没问题。但是,对于经常更改的数据,这可能不是最方便的选择。还要记住,cookie 中的任何内容都是用户在每次请求时发送的,如果加载到 cookie 中的内容过多,则可能会占用额外的带宽,甚至超过最大标头长度。

【讨论】:

以上是关于如何在服务器端使用passport js本地用户身份验证后在客户端使用cookie显示用户信息?的主要内容,如果未能解决你的问题,请参考以下文章

需要了解passport.js本地策略

向 passport.js 本地策略添加其他字段

passport.js 中的本地和 Google 策略:序列化用户时的问题

React-Facebook-Login 和 Node.js Express

Passport.js本地策略如何保护路线

Express + Passport.js:req.user 未定义