Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import "dotenv/config";
- import bcrypt from "bcrypt";
- const passport = require("passport"),
- localStrategy = require("passport-local").Strategy,
- JWTstrategy = require("passport-jwt").Strategy,
- ExtractJWT = require("passport-jwt").ExtractJwt;
- import User from "../models/user";
- passport.use(
- "register",
- new localStrategy(
- {
- usernameField: "username",
- passwordField: "password",
- passReqToCallback: true,
- session: false
- },
- async (req, username, password, done) => {
- let user;
- try {
- user = await User.findOne({
- username: username
- });
- if (user) {
- console.log("username already taken");
- return done(null, false, {
- message: "Username already taken"
- });
- } else {
- user = await new User({
- firstname: req.body.firstname,
- lastname: req.body.lastname,
- email: req.body.email,
- username: req.body.username,
- password: password
- }).save();
- console.log("New user created!");
- }
- return done(null, user);
- } catch (err) {
- done(err);
- }
- }
- )
- );
- passport.use(
- "login",
- new localStrategy(
- {
- usernameField: "username",
- passwordField: "password",
- session: false
- },
- async (username, password, done) => {
- let user;
- try {
- user = await User.findOne({ username });
- if (!user) {
- return done(null, false, {
- message: "Wrong username/password details"
- });
- } else {
- bcrypt.compare(password, user.password).then(response => {
- if (response !== true) {
- console.log("login details are incorrect");
- return done(null, false, {
- message: "login details are incorrect"
- });
- }
- console.log("user logged in");
- return done(null, user);
- });
- }
- } catch (err) {
- done(err);
- }
- }
- )
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement