aboutsummaryrefslogtreecommitdiffstats
path: root/backend/src/utils/jwt.js
diff options
context:
space:
mode:
authorLibravatarLibravatar Biswa Kalyan Bhuyan <[email protected]> 2025-04-29 10:47:43 +0530
committerLibravatarLibravatar Biswa Kalyan Bhuyan <[email protected]> 2025-04-29 10:47:43 +0530
commita2e0a65b2599267efe94d665d6305f59b225bbd5 (patch)
treee2cef2031e3f7655e0c5f419020a3f1064c3b7b8 /backend/src/utils/jwt.js
parent570bf0f3f065d583d6f94ecfc61aae93ba3e43de (diff)
downloadrestaurant-a2e0a65b2599267efe94d665d6305f59b225bbd5.tar.gz
restaurant-a2e0a65b2599267efe94d665d6305f59b225bbd5.tar.bz2
restaurant-a2e0a65b2599267efe94d665d6305f59b225bbd5.zip
feat: added initlaized the frontend and backendHEADmaster
Diffstat (limited to 'backend/src/utils/jwt.js')
-rw-r--r--backend/src/utils/jwt.js37
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