NodeJS 中配置token
- 首先安装
jsonwebtoken
第三方模块npm i jsonwebtoken
文档说明 - 使用的基本格式
jwt.sign(payload,secret,expiresIn)
- 其中
payload
是需要保存的数据 secret
密匙,在设置token
和解析token
的时候都需要用到expiresIn
可以设置过期的时间
const jwt= require("jsonwebtoken") const secret = "小火车况且况且" const token = jwt.sign({name: "小火车"}, secret,{expiresIn: "1h"})
- 其中
- 解析
token
使用jwt.verify(token,secret)
token
就是传递过来的token
secret
就是在设置token
的时候使用到的密匙
const jwt= require("jsonwebtoken") const secret = "小火车况且况且" const token = jwt.sign({name: "小火车"}, secret,{expiresIn: "1h"}) const get_token = jwt.verify(token,secret) console.log(get_token) // {name: "小火车"}
- 在
node
中使用的时候需要接收请求头传递的token
,直接使用koa-jwt
安装npm i koa-jwt
文档说明 只要求部分请求需要token
const Koa = require("koa") const koa_jwt = require("koa-jwt") const Router = require("koa-router") const jwt= require("jsonwebtoken") const router = new Router() const app = new Koa() const secret = "小火车况且况且" const token = jwt.sign({name: "小火车"}, secret,{expiresIn: "1h"}) const need_Token = koa_jwt({secret}) router.get("/", (ctx) => { ctx.body = "hello world" }) // 说明需要验证token是否存在,要求请求头传递token router.post("/user", need_Token,(ctx) => { ctx.body = "hello user" }) app.use(router) app.listen(3000,() => console.log("localhost:3000"));
- 要求全部请求都需要
token
,只需要在路由加载之后使用app.use(need_token)
const Koa = require("koa") const koa_jwt = require("koa-jwt") const Router = require("koa-router") const jwt= require("jsonwebtoken") const router = new Router() const app = new Koa() const secret = "小火车况且况且" const token = jwt.sign({name: "小火车"}, secret,{expiresIn: "1h"}) const need_Token = koa_jwt({secret}) router.get("/", (ctx) => { ctx.body = "hello world" }) router.post("/user",(ctx) => { ctx.body = "hello user" }) app .use(router) .use(need_token) app.listen(3000,() => console.log("localhost:3000"));
- 使用
postman
进行数据的模拟请求,请求的时候设置
- 之后就会出现
Authorization
和设置的token
- 用户每次登陆都会返回
token
,设置postman
的环境变量,让其每次登陆的时候自动保存最新的token
文章地址