如何在 koa2 和 nodejs 中使用 jwt
How to use jwt in koa2 & nodejs
我有一个页面是用nodejs和koa写的,我对JWT有点困惑,请检查下面的代码。
'use strict';
const Router = require("koa-router");
const router = new Router({prefix: '/login'});
const jwt = require('jsonwebtoken');
const jwtkey = "123456";
router
.get('/', async (ctx, next) => {
await ctx.render("login", {
});
})
.post('/', async (ctx, next) => {
try {
let email = ctx.request.body.email || "";
let password = ctx.request.body.password || "";
//check user
if (islogin) {
let payload = {
email: email,
password: sha1(password).toString()
}
let token = jwt.sign(payload, jwtkey, {expiresIn: '3h'});
ctx.body = {"error": false, "msg": token};
} else {
throw "Wrong";
}
} catch (e) {
ctx.body = {error:true, msg: e instanceof Error ? e.message : e};
}
})
module.exports = router;
我想实现在访问登录页面时,如果jwt生成的token在服务器端存在并且正确,则console.log("logined")
,如果不存在,则显示登录页面。
.get('/', async (ctx, next) => {
//how to verify the token?
if(token) {
console.log("logined");
} else {
await ctx.render("login", {
});
}
})
谢谢。
生成令牌后,您应该在用户的浏览器中将该令牌设置为 cookie 或其他方式,
然后在请求/页面检查令牌并验证有效性
var decoded = jwt.verify(token, key);
我有一个页面是用nodejs和koa写的,我对JWT有点困惑,请检查下面的代码。
'use strict';
const Router = require("koa-router");
const router = new Router({prefix: '/login'});
const jwt = require('jsonwebtoken');
const jwtkey = "123456";
router
.get('/', async (ctx, next) => {
await ctx.render("login", {
});
})
.post('/', async (ctx, next) => {
try {
let email = ctx.request.body.email || "";
let password = ctx.request.body.password || "";
//check user
if (islogin) {
let payload = {
email: email,
password: sha1(password).toString()
}
let token = jwt.sign(payload, jwtkey, {expiresIn: '3h'});
ctx.body = {"error": false, "msg": token};
} else {
throw "Wrong";
}
} catch (e) {
ctx.body = {error:true, msg: e instanceof Error ? e.message : e};
}
})
module.exports = router;
我想实现在访问登录页面时,如果jwt生成的token在服务器端存在并且正确,则console.log("logined")
,如果不存在,则显示登录页面。
.get('/', async (ctx, next) => {
//how to verify the token?
if(token) {
console.log("logined");
} else {
await ctx.render("login", {
});
}
})
谢谢。
生成令牌后,您应该在用户的浏览器中将该令牌设置为 cookie 或其他方式,
然后在请求/页面检查令牌并验证有效性
var decoded = jwt.verify(token, key);