如何在服务器端使用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 中的本地和 Google 策略:序列化用户时的问题