29
server/api/helpers/utils/create-token.js
Normal file
29
server/api/helpers/utils/create-token.js
Normal file
@@ -0,0 +1,29 @@
|
||||
const jwt = require('jsonwebtoken');
|
||||
|
||||
module.exports = {
|
||||
sync: true,
|
||||
|
||||
inputs: {
|
||||
subject: {
|
||||
type: 'json',
|
||||
required: true,
|
||||
},
|
||||
issuedAt: {
|
||||
type: 'ref',
|
||||
},
|
||||
},
|
||||
|
||||
fn(inputs) {
|
||||
const { issuedAt = new Date() } = inputs;
|
||||
const iat = Math.floor(issuedAt / 1000);
|
||||
|
||||
return jwt.sign(
|
||||
{
|
||||
iat,
|
||||
sub: inputs.subject,
|
||||
exp: iat + sails.config.custom.tokenExpiresIn * 24 * 60 * 60,
|
||||
},
|
||||
sails.config.session.secret,
|
||||
);
|
||||
},
|
||||
};
|
||||
@@ -1,16 +0,0 @@
|
||||
const jwt = require('jsonwebtoken');
|
||||
|
||||
module.exports = {
|
||||
sync: true,
|
||||
|
||||
inputs: {
|
||||
payload: {
|
||||
type: 'json',
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
|
||||
fn(inputs) {
|
||||
return jwt.sign(inputs.payload, sails.config.session.secret);
|
||||
},
|
||||
};
|
||||
@@ -15,10 +15,16 @@ module.exports = {
|
||||
},
|
||||
|
||||
fn(inputs) {
|
||||
let payload;
|
||||
try {
|
||||
return jwt.verify(inputs.token, sails.config.session.secret);
|
||||
payload = jwt.verify(inputs.token, sails.config.session.secret);
|
||||
} catch (error) {
|
||||
throw 'invalidToken';
|
||||
}
|
||||
|
||||
return {
|
||||
subject: payload.sub,
|
||||
issuedAt: new Date(payload.iat * 1000),
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user