koa-jwt 生成token问题
发布于 7 年前 作者 xumjs8623 13302 次浏览 来自 问答

我问一下 koa-jwt 是不是只能验证token,不会生成token, 还是需要jsonwebtoken来生成。 koa-jwt文档里有这句话,英语渣不太懂untitled1.png

20 回复

sign是生成token的方法,用verify验证

@mikan2000 jsonwebtoken中是这样的,但是如果我引入koa-jwt 然后使用sign就会报错untitled1.png

untitled2.png

koa-jwt是koa中间件,看文档

@i5ting 英语有点渣, 看了文档 好像都在写怎么验证token,然后数据会放在ctx.state.user。 所以来问问 生成token是不是还是需要

var jwt = require('jsonwebtoken');
//然后去生成token
jwt.sing()

看他的测试代码就好了

https://github.com/haorui/koa-jwt/blob/master/test.js


	it('should throw if getToken function returns invalid jwt', function(done){
		var app = koa();
		app.use(koajwt({secret: 'shhhhhh', getToken: function(){
			var secret = 'bad';
			return koajwt.sign({foo: 'bar'}, secret);
		}}));
		request(app.listen())
		.get('/')
		.expect(401)
		.expect('Invalid token\n')
		.end(done);
	});

@i5ting ok 非常感谢!

如果说的是 https://github.com/koajs/jwt 这个库的话 的确是只能用来验证。

登陆后生成token需要用const jwt = require(‘jsonwebtoken’); 这个库来生成token

@jinwyp 嗯,已经解决了,不过还是非常感谢你

@xumjs8623 你用的是webstorm吗,这个主题怎么调出来的?

@qujinxiong 我用的vs code,方便调试nodejs 。这个主题好像就是sublime默认主题吧

@xumjs8623 3q,我用的webstorm,里面没有这个主题,你这个主题好看

@qujinxiong untitled1.png webstorm 这里设置,就跟我一样的主题

@xumjs8623 ![2_11Q]@JZZC~}AFJ`F68RWG.png](//static.cnodejs.org/Fn_XTBsTGkwXeAuFOWfwHP-Ee5_o) 我就是用的这个主题,我这是这样

@qujinxiong 差不多的 😁

@xumjs8623 ![K4~IX8A8@V_H{8)5E2P}WV.png 在这改一下关键字字体,就行了,谢了。

jwt库之间就可以啊

楼主怎么整的,生成token还是需要使用jsonwebtoken的库吗

@caiya 我还是用jsonwebtoken来生成token

//jsonwebtoken在服务端生成token返回给客户端
const jwt = require('jsonwebtoken')
const token = jwt.sign({
    id: user._id,
    secret: user.app_secret
}, config.jwt_secret, {expiresIn: 3600})
    
ctx.body = { 
  code: 200, 
  message: '登录成功!', 
  token: token
}

image.png 求问,为什么我jwt.sign()返回给我一个promise,而不是token字符串啊

回到顶部