CNode

koa-jwt 生成token问题

问答
Xxumjs8623发布于9 年前最后回复8 年前20 回复14814 浏览0 收藏

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

查看回复

回复 (20)

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

X
xumjs8623#2·9 年前

@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
}

@xumjs8623 好的

D
dryqiao#4·8 年前

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

M
mikan2000#5·9 年前

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

J
JarvisQJ#6·9 年前
引用 xumjs8623@mikan2000 jsonwebtoken中是这样的,但是如果我引入koa jwt 然后使用sign就会报错

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

X
xumjs8623#7·9 年前
引用 JarvisQJ@xumjs8623 你用的是webstorm吗,这个主题怎么调出来的?

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

J
JarvisQJ#8·9 年前
引用 xumjs8623@qujinxiong 我用的vs code,方便调试nodejs 。这个主题好像就是sublime默认主题吧

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

J
JarvisQJ#9·9 年前
引用 xumjs8623@qujinxiong 差不多的 😁

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

X
xumjs8623#10·9 年前
引用 mikan2000sign是生成token的方法,用verify验证

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

untitled2.png

I
i5ting#11·9 年前

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

X
xumjs8623#12·9 年前
引用 i5tingkoa jwt是koa中间件,看文档

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

var jwt = require('jsonwebtoken');
//然后去生成token
jwt.sing()
I
i5ting#13·9 年前

看他的测试代码就好了

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);
	});
J
jinwyp#15·9 年前

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

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

X
xumjs8623#17·9 年前
引用 JarvisQJ@xumjs8623 3q,我用的webstorm,里面没有这个主题,你这个主题好看

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

J
JarvisQJ#18·9 年前
引用 xumjs8623@qujinxiong webstorm 这里设置,就跟我一样的主题

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

L
liushaobo05#20·9 年前

jwt库之间就可以啊

参与回复
登录后即可参与回复。登录