thechutrain / mern-passport

A boilerplate example of using passport.js for authenticating a MERN application

Home Page:https://mern-passport.herokuapp.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MERN + Passport.js

example MERN stack application that uses authentication

  • Mongo, Express, React, Node (MERN) + Passport.js for managing authentication
  • This project was bootstrapped with Create React App.

Demo

demo gif

View the live version of this app here: https://mern-passport.herokuapp.com/

Project Structure

|-- server/
|  |-- server.js                            // The entry point for running the backend server locally, and main server for production
|  |-- passport/                             // Configuration files used to connect to different machines or set settings
|     |-- index.js                     // Overloads the passport object and defines serialize and deserialize
|     |-- localStrategy.js            // Defines a local strategy
|     |-- googleStrategy.js           // Defines google OAuth stratgey
|     ....
|  |-- db/                             
|     |-- index.js                  // Configures the connection to the database
|     |-- models/                   // represents data from our database, and defines schemas for each collection
|        |-- user.js                // Schema for the User collection
| -- src/                           // Entry for the React client side application

Note

  • In order to set the google authentication up, you must register your app @ https://console.developers.google.com & set GOOGLE_CLIENT_ID & GOOGLE_CLIENT_SECRET as environmental variables
  • In development mode (i.e. npm run dev), OAuth google callback is not being proxied to the google servers. Therefore in order to test the google OAuth on your local machine do the following:
  1. npm run build
  2. npm run prod

About

A boilerplate example of using passport.js for authenticating a MERN application

https://mern-passport.herokuapp.com/


Languages

Language:JavaScript 88.4%Language:HTML 9.5%Language:CSS 2.1%