[ jsonwebtoken ]
// 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 ]
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')
})
[ session ]
- 与 cookie 不同,session 是存储在服务器数据库中的
- session 存储当前会话的相关信息
- 创建 session 的时候,会生成一个 sessionId 并添加到 cookie 里面
- 通过 cookie 的sessionId,服务端可以找到相应的 session 并得到会话信息
- sessionStorage 的存储空间只有 4k
- sessionStorage 只保存会话相关数据,会话结束会被自动清空
[ localStorage ]
const token = 'Bearer abcdefg'
localStorage.setItem('token', token)
const Authrization = localStorage.getItem('token')
console.log(Authrization)