1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 02:09:32 +02:00
OpenSTF/lib/util/jwtutil.js
2015-07-01 17:32:30 +09:00

33 lines
655 B
JavaScript

var assert = require('assert')
var jws = require('jws')
module.exports.encode = function(options) {
assert.ok(options.payload, 'payload required')
assert.ok(options.secret, 'secret required')
return jws.sign({
header: {
alg: 'HS256'
, exp: Date.now() + 24 * 3600
}
, payload: options.payload
, secret: options.secret
})
}
module.exports.decode = function(payload, secret) {
if (!jws.verify(payload, 'HS256', secret)) {
return null
}
var decoded = jws.decode(payload, {
json: true
})
, exp = decoded.header.exp
if (exp && exp <= Date.now()) {
return null
}
return decoded.payload
}