Add Confirm email, Forgot Password, Logout to NestJS, Graphql, Typeorm code base

Job ID: 31251258

Budget: $10 – $30 USD

Code must be clean and organized

-verify redis setup and make it work with expiration token
-use node mailer to send confirmation email when a user signs up
-assign a boolean property emailConfirmed to user, default to false
-create an api and mutation that will update the user's emailConfirmed to true when the user confirms their email
-user will have 24 hours to validate their email
-if the user accesses the url after 24 hrs, the user will see 'This url is no longer valid, a new confirmation email has been sent', and a new email that's valid for 24 hours will be sent
-similarly a forgot password has 24hrs
-logout will destroy the session and prevent user from accessing protected page

See Tutorial for setting up confirmation email (note: setup may differ)
https://www.youtube.com/watch?v=OP39UioapL8&list=PLN3n1USn4xlma1bBu3Tloe4NyYn9Ko8Gs&index=6

See Tutorial for Forgot Password
https://www.youtube.com/watch?v=Jksj60x1TsI&list=PLN3n1USn4xlma1bBu3Tloe4NyYn9Ko8Gs&index=8

See Tutorial for Logout
https://www.youtube.com/watch?v=j9dOdjBzARo&list=PLN3n1USn4xlma1bBu3Tloe4NyYn9Ko8Gs&index=8
(please note session implementation was done differently than the video)

Open to alternative solutions

Please use redis session to create token (test account will be provided)
Nodemailer for sending emails
You will be required to setup a local db matching credentials provided and walk through to show everything works.

Code base is attached

Project is to be eventually used with a react front end
Related categories: MySQL Node.js Redis GraphQL