2019-08-31 04:07:25 +05:00
|
|
|
const jwt = require('jsonwebtoken');
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
sync: true,
|
|
|
|
|
|
|
|
inputs: {
|
|
|
|
token: {
|
|
|
|
type: 'string',
|
2019-11-05 18:01:42 +05:00
|
|
|
required: true,
|
|
|
|
},
|
2019-08-31 04:07:25 +05:00
|
|
|
},
|
|
|
|
|
|
|
|
exits: {
|
2020-04-03 00:35:25 +05:00
|
|
|
invalidToken: {},
|
2019-08-31 04:07:25 +05:00
|
|
|
},
|
|
|
|
|
2021-06-24 01:05:22 +05:00
|
|
|
fn(inputs) {
|
2022-08-09 18:03:21 +02:00
|
|
|
let payload;
|
2019-08-31 04:07:25 +05:00
|
|
|
try {
|
2022-08-09 18:03:21 +02:00
|
|
|
payload = jwt.verify(inputs.token, sails.config.session.secret);
|
2019-11-05 18:01:42 +05:00
|
|
|
} catch (error) {
|
2020-04-03 00:35:25 +05:00
|
|
|
throw 'invalidToken';
|
2019-08-31 04:07:25 +05:00
|
|
|
}
|
2022-08-09 18:03:21 +02:00
|
|
|
|
|
|
|
return {
|
|
|
|
subject: payload.sub,
|
|
|
|
issuedAt: new Date(payload.iat * 1000),
|
|
|
|
};
|
2019-11-05 18:01:42 +05:00
|
|
|
},
|
2019-08-31 04:07:25 +05:00
|
|
|
};
|