简体   繁体   中英

expressjs + mongoose + passportjs GithubStrategy

I'm trying to save a user that authenticated through GitHub into mongodb. I'm using mongoose. Below is what I have:

var accountSchema = new Schema({
  firstName: String,
  lastName: String,
  email: String,
  githubId: String,
  githubAccessToken: String
});

passport.use(new GitHubStrategy({
    clientID: config.GITHUB_CLIENT_ID,
    clientSecret: config.GITHUB_CLIENT_SECRET,
    callbackURL: "http://127.0.0.1/auth/github/callback",
    scope: ['user', 'public_repo', 'repo', 'gist']
  },
  function(accessToken, refreshToken, profile, done) {
     User.findOrCreate(...) // User is not defined
  });
}));

How do I save a user to mongodb so they don't have to authenticate each time they visit the site? The example on the passport-github doesn't save anything to a database, which is what I'm looking to do? Are there any tutorials regarding this?

this could help: How to deal with async. findOrCreate method for passport and mongoose

basically you have to define a function (in your case that would be the findOrCreate function) that handles the database operation(s) and knows about the necessary mongoose schemas and models.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM