Enhance security: add env validation and improved token refresh logic #105
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Environment Variable Protection
In
backend/server.js, we added a validation layer to ensure the server does not start with missing configuration.Purpose: To prevent the application from running in an unstable state or crashing unexpectedly when attempting to access undefined environment variables.
Changes:
mongo_uri, ACCESS_TOKEN, REFRESH_TOKEN, and CLOUDINARY_CLOUD_NAME.dotenv.config().(process.exit(1))if any required variable is missing to alert the developer immediately.2. Enhanced Token Expiration Handling
Changes:
Modified the catch block within the access token verification logic.
Added a specific check for error.name === "TokenExpiredError".
Updated the error response to return a 401 status code with the message "Access token expired" instead of a generic "invalid" error.
Input Validation for User Registration
We introduced a new validation utility and integrated it into the authentication flow.
Purpose: To ensure data integrity and security by verifying user input before it reaches the database.
Changes: