- token 令牌,注册时生成,登陆验证通过后下发
// install
npm install jsonwebtoken
// 生成
const token = 'Bearer ' + jwt.sign({userid: 1}, secret)
// secret 生成令牌加密用到的字符串,尽可能复杂一点
// 解析
const decode = jwt.verify(token, secret)
- expiresIn 有效期, '15 days', '2h', '7d', 60 // 60是秒
- Example:
const jwt = require('jsonwebtoken')
const secret = 'helloll'
const userid = 'abcdefg'
const token = 'Bearer ' + jwt.sign({userid}, secret, {expiresIn: '7 days'})
const decode = jwt.verify(token.slice(7), secret)
- cookie 用来存储会话缓存,通常由服务端进行设置,客户端每次发送请求会自动携带 cookie。
- cookie 存储容量较小,且不支持跨域。
- https://nodejs.cn/express/5x/api/res/#cookie
- https://nodejs.cn/express/5x/api/req/#cookies
- 可以使用res.cookie(name, value, options) 来添加cookie
- 通过 cookie-parser 中间件,可以方便的访问 req.cookie
const express = require('express')
const app = express()
const cookieParser = require('cookie-parser')
app.use(cookieParser())
app.get('/login', (req, res) => {
const token = 'Bearer abcdefg'
res.cookie('token', token, {httpOnly: true})
res.send('login successful')
})
app.get('/user', (req, res) => {
const token = req.cookies.token
res.send(token)
})
app.listen(3000, () => {
console.log('running')
})