diff options
author | 2025-04-29 10:47:43 +0530 | |
---|---|---|
committer | 2025-04-29 10:47:43 +0530 | |
commit | a2e0a65b2599267efe94d665d6305f59b225bbd5 (patch) | |
tree | e2cef2031e3f7655e0c5f419020a3f1064c3b7b8 /backend/src/utils | |
parent | 570bf0f3f065d583d6f94ecfc61aae93ba3e43de (diff) | |
download | restaurant-master.tar.gz restaurant-master.tar.bz2 restaurant-master.zip |
Diffstat (limited to 'backend/src/utils')
-rw-r--r-- | backend/src/utils/jwt.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/backend/src/utils/jwt.js b/backend/src/utils/jwt.js new file mode 100644 index 0000000..283b986 --- /dev/null +++ b/backend/src/utils/jwt.js @@ -0,0 +1,37 @@ +const jwt = require('jsonwebtoken'); +const env = require('../config/env'); + +/** + * Generate JWT token for a user + * @param {Object} user - User object + * @returns {String} JWT token + */ +const generateToken = (user) => { + return jwt.sign( + { + id: user._id, + role: user.role, + email: user.email + }, + env.JWT_SECRET, + { expiresIn: env.JWT_EXPIRES_IN } + ); +}; + +/** + * Verify JWT token + * @param {String} token - JWT token + * @returns {Object} Decoded token + */ +const verifyToken = (token) => { + try { + return jwt.verify(token, env.JWT_SECRET); + } catch (error) { + throw new Error('Invalid token'); + } +}; + +module.exports = { + generateToken, + verifyToken +};
\ No newline at end of file |