GithubHelp home page GithubHelp logo

thechutrain / mern-passport Goto Github PK

View Code? Open in Web Editor NEW
234.0 6.0 102.0 11.59 MB

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

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

HTML 9.48% JavaScript 88.45% CSS 2.07%
react react-router-v4 mongoose mongo nodejs express passport googleoauth

mern-passport's Introduction

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

mern-passport's People

Contributors

thechutrain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mern-passport's Issues

response.data.errmsg

On line 32 there is a conditional that starts with:

if (!response.data.errmsg)

I think this is supposed to be:

if (!response.data.error)

I tried to cause an error with both and only the 2nd one looked like it console logged the output. I looked at the axios docs and could not find anything with response.data.errmsg

google auth doesnt work

Hi! Not sure if this is still being maintained or not, but I cloned the repro, and installed locally. The local strategy works beautifully, but nothing seems to happen when i press the log in with google button. I did set up my client id and secret, as well as the callback url. Tried debugging for a little while, but i cant seem to find what's wrong.

The google sign in does seem to work in the demo.

Any chance you could provide some instructions on how to get the google sign in to work? Would be greatly appreciated. Thanks!

export' is not recognized as an internal or external command, operable program or batch file.

'export' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: export NODE_ENV="production" && node server/server.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Deploying to Heroku

I'm trying to deploy to Heroku with the mern app + passport.js and I am not getting any errors in the heroku logs. But when I go to the heroku domain, it just says "Invalid Host header." Do you have any ideas how to fix that? Thanks!

Deprecation Warning

When running 'npm run dev' you will receive a 'DeprecationWarning: open() is deprecated in mongoose...' Update lines 9-15 in server/db/index.js to below per mongoose docs (http://mongoosejs.com/docs/4.x/docs/connections.html#use-mongo-client).

if (process.env.MONGODB_URI) { mongoose.connect(process.env.MONGODB_URI, { useMongoClient: true }) MONGO_URL = process.env.MONGODB_URI } else { mongoose.connect(MONGO_LOCAL_URL, { useMongoClient: true }) MONGO_URL = MONGO_LOCAL_URL }

Oauth2 on localhost

I'd appreciate it if you could list DETAILED steps for testing Google Oauth2 while deployed on localhost for a newbie.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.