1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-03 17:59:28 +02:00
OpenSTF/lib/util/jwtutil.js
2016-01-19 20:52:38 +09:00

39 lines
740 B
JavaScript

var assert = require('assert')
var jws = require('jws')
var _ = require('lodash')
module.exports.encode = function(options) {
assert.ok(options.payload, 'payload required')
assert.ok(options.secret, 'secret required')
var header = {
alg: 'HS256'
}
if (options.header) {
header = _.merge(header, options.header)
}
return jws.sign({
header: header
, 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
})
var exp = decoded.header.exp
if (exp && exp <= Date.now()) {
return null
}
return decoded.payload
}