p5.js-web-editor/server/utils/auth.js

38 lines
818 B
JavaScript

const jwt = require('jsonwebtoken');
class Auth {
/**
* Create a verification token using jwt
*/
createVerificationToken(email, fromEmail) {
return jwt.sign({
email,
fromEmail,
}, process.env.SECRET_TOKEN, {
expiresIn: '1 day',
subject: 'email-verification',
});
}
/**
* Verify token
*/
verifyEmailToken(token) {
return new Promise((resolve, reject) => {
jwt.verify(token, process.env.SECRET_TOKEN, (err, data) => {
if (err) {
if (err.name === 'TokenExpiredError') {
reject('The verification link has expired');
} else if (err.name === 'JsonWebTokenError') {
reject('Verification link is malformend');
}
}
resolve(data);
});
});
}
}
export default new Auth();