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
/POST
are allowed. - Access-Control-Allow-Credentials: set to
TRUE
(needed for sendingAUTHORIZATION
header).
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!