jwt

  • [ jsonwebtoken ]
    • 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 ]
  •   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)
    
    posted @ 2024-03-16 16:10  anch  阅读(2)  评论(0编辑  收藏  举报