Packages we need.
"@sendgrid/mail": "^7.2.4",
"bcrypt": "^5.0.0",
"cookie-parser": "~1.4.4",
"cors": "^2.8.5",
"debug": "~2.6.9",
"dotenv": "^8.2.0",
"express": "~4.16.1",
"express-validator": "^6.6.1",
"googleapis": "^40.0.1",
"http-errors": "~1.6.3",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.10.2",
"morgan": "~1.9.1",
"passport": "^0.4.1",
"passport-jwt": "^4.0.0"
Our Endpoints
-
/api
: API_ENDPOINT -
/api/docs
: API_DOCS -
/api/auth
: AUTH_ENDPOINT -
/signup
: AUTH_SIGNUP -
/login
: AUTH_LOGIN -
/verify/:token
: AUTH_VERIFY_EMAIL -
/api/auth/verify/
: AUTH_VERIFY_FULL -
/resend
: AUTH_VERIFY_EMAIL_RESEND -
/recover
: AUTH_RECOVER -
/reset/:token
: AUTH_CHECK_RESET_LINK -
/reset/:token
: AUTH_RESET /api/auth/reset/
: AUTH_RESET_FULL/api/user
: USER_ENDPOINT/update
: USER_UPDATE/updatePassword
: USER_UPDATE_PASSWORD/deleteAccount
: USER_DELETE_ACCOUNT/resetPassword
: CLIENT_RESET_PASSWORD_PATH/verifyEmail
: CLIENT_EMAIL_VERIFICATION_PATH/api/subscriptions
: SUBSCRIPTIONS_ENDPOINT/add/google
: SUBSCRIPTIONS_ADD_GOOGLE/add/google/callback
: SUBSCRIPTIONS_ADD_GOOGLE_CALLBACK/updateSubscription
: SUBSCRIPTIONS_UPDATE_SUBSCRIPTION/api/spreadsheets
: SPREADSHEETS_ENDPOINT
Environment variables
* API_ENDPOINT=<API Endpoint ex: /api>
* SERVER_ROUTE=<Inital route of server after domain name. ex: /app>
* CLIENT_URL=<Client URL ex: http://localhost:3000>
* MONGO_URI=<MongoDB URI>
* JWT_SECRET=<Random String for JWT Secret>
* SENDGRID_API_KEY=<Sengrid API Key>
* SENDGRID_FROM_EMAIL=<Email of the sender>
* GOOGLE_CLIENT_ID=<Google Client ID>
* GOOGLE_CLIENT_SECRET=<Google Client Secret>
Models
-
EmailVerificationToken.model.js
: Email verification token model -
User.model.js
: User model
Middlewares
We need the below middlewares.
-
jwt.js
: Handle JWT Token -
validate.js
: Handle email, username, password validation -
authenticated.js
: Handle the authentication
Controllers
-
auth.js
: Handle all authtication requests -
user.js
: Handle all User related requests -
subscriptions.js
: Handle all subscriptions (Google Accounts) related requests -
spreadsheets.js
: Handle all spreadsheets related requests.
Top comments (0)