第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

【備戰(zhàn)春招】第15天 JWT 練習(xí):生成 token

標簽:
Node.js

课程章节:第3章 技术选型和知识点介绍(下) 3-15 jwt-加密用户信息

课程讲师双越

课程内容

上节课学习了 JWT 的理论知识,这节课上手应用 JWT。

项目初始化

koa2 -e koa-jwt-study

cd koa-jwt-study

yarn install

安装 JWT 相关依赖模块:

yarn add koa-jwt jsonwebtoken 

koa-jwt :基于 jsonwebtoken 的 koa 中间件,用于校验 token,控制哪些路由需要 jwt 验证,哪些路由不需要验证。

jsonwebtoken - 它是JWT 技术 在 Node 环境下的一种实现,用于生成token,在 koa2 以后的版本不再提供 jsonwebtoken 的方法,所以需要另行安装。

koa-jwt 依赖 jsonwebtoken 这个模块,所以在代码中中直接使用 koa-jwt 去校验客户端发来的 token 即可。

使用

生成 JWT 需要使用秘钥,所以创建一个配置文件,用于存放 secret:

// conf/index.js

module.exports = {
 JWT_SECRET: 'H7&_DVI87@D'
}

导入相关中间件并注册:

// app.js

const jwt = require('jsonwebtoken')
const { SECRET } = require('./config')

app.use(jwtKoa({
    secret: SECRET
}).unless({
    // 排除不需要校验 token 的路径
    path: [/\/user\/login/]
})

对于每个请求,都会经过此中间件,它会使用 secret 来校验请求中的 token 是否合法,通过校验的请求才能往下走,交给其他的中间件去处理。

未通过 koa-jwt 校验的请求,会返回客户端 401,表示没有权限访问。

使用 sign 签名方法,在用户登录接口中生成 token:

// routes/user.js
const jwtKoa = require('koa-jwt')
const { SECRET } = require('./config')

router.post('/login', async (ctx, next) =>{
    const { username, password } = ctx.request.body
    // 假设通过了数据库查询,验证用户身份正确
    // 使用 koa-jwt 生成 token
    const token = jwt.sign({
        username,
    }, SECRET, {
        expiresIn: '1h'
    })
    ctx.body = {
       code: 0,
       data: {
           token
       }
    }
})

到此,当用户访问 /users/login 接口,就能生成 token了,服务端会将生成的token 返回给客户端,客户端接收响应后,将 token 存储起来,之后的请求必须携带上此 token,才能通过 koa-jwt 中间件的校验

图片描述

课程收获

这节课学习了使用 koa-jwt 来校验token和白名单,使用 jsonwebtoken 生成 token。

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消