An Express application for the Login Server!
This module gives the Express backend server for the LOGIN functionality. It returns the express application which is set up with the following:
/login: For login of users./register: To register new users./validate: To validate the email of new users./forgotpassword: To send a reset mail to the registered email address of the user./resetpassword: To handle reset password functionality.
CORS is setup with:
- Access-Control-Allow-Origin: Allows
http://localhost:3000&process.env.APP_CLIENTURL. - Access-Control-Allow-Methods:
GET/POSTare allowed. - Access-Control-Allow-Credentials: set to
TRUE(needed for sendingAUTHORIZATIONheader).
Rate Limiting of each IP to 100 requests per 15 minutes.
Connect to MongoDB using Mongoose by specifying the Database in process.env.APP_DB.
The Reset Password API endpoint will send out a mail if the details provided are correct. It uses process.env.APP_EMAIL, process.env.APP_PASSWORD, process.env.APP_RESETEMAIL & process.env.APP_RESETLINK.
The Register API endpoint will send out a validation mail if the details provided are correct. It uses process.env.APP_EMAIL, process.env.APP_PASSWORD, process.env.APP_RESETEMAIL & process.env.APP_VALIDATELINK.
These variables should be stored in Environment Variables, and will be accessible to the module in the form process.env.APP_DB. Node.js platform will do this by default.
- APP_DB: The MongoDB URI used to connect to the DB.
- APP_SECRETORKEY: A Secret key for generating random strings to be used as JWTs (JSON Web Tokens).
- APP_EMAIL: Email from which you want to send mail.
- APP_PASSWORD: Password for the above APP_EMAIL.
- APP_RESETEMAIL: The Email that is displayed in the 'From' field in the mail sent.
- APP_RESETLINK: Link to reset password. For e.g., https://www.myapp.com/reset-password
- APP_VALIDATELINK: Link to validate email for a new user. For e.g., https://www.myapp.com/validate-email
- APP_CLIENTURL: The URL of your Client application which will connect to this server. For e.g., https://www.myapp.com
For a demo, check out the repo of my Notes App!