xhr being blocked, CORS Missing Allow Origin

32 views Asked by At

I have this problem, i'm trying to setup facebook authentication with express js/passport js and the redirect is being blocked , CORS Missing Allow Origin enter image description here

--- this the facebookStrategy :

const passport = require('passport')
const FacebookStrategy = require('passport-facebook').Strategy
const User = require('../models/User.js')
require('dotenv').config()


passport.use(new FacebookStrategy({
  clientID: process.env.FACEBOOK_CLIENT_ID,
  clientSecret: process.env.FACEBOOK_SECRET_KEY,
  callbackURL: process.env.FACEBOOK_CALLBACK_URL
}, 
async (accessToken, refreshToken, profile, done) => {
  User.findOne({ _id: profile.id }).then(user => {
    if (user) {
      // Already have a record
      done(null, user)
    } else {
      // Add new record
      new User({ _id: profile.id, username: profile.displayName })
        .save()
        .then(user => done(null, user))
    }
  })
})) 
passport.serializeUser((user, done) => {
  done(null, user.id);
});

passport.deserializeUser((id, done) => {
  User.findById(id, (err, user) => {
    done(err, user);
  });
});

module.exports = passport

--- this is the router :

const {Router} = require('express')
const router = Router()
const passport = require("../config/passport.js");

// Route for initiating Facebook authentication
router.get('/facebook', passport.authenticate('facebook'))
// Callback route for Facebook authentication
router.get('/facebook/callback', passport.authenticate('facebook', { failureRedirect: '/login' }),
(req, res) => {
    res.redirect('/main')
  }
);

module.exports = router

--- and this is the server

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const cors = require('cors');
const morgan = require('morgan');
const passport = require('passport');
const session = require('express-session');

const authRoute = require("./routes/authRoute.js");
const facebookRoute = require("./routes/facebookRoute.js");


const app = express();

app.use(morgan('combined'));
app.use(bodyParser.json());
app.use(cors());

// Use express-session middleware for sessions
app.use(session({
  secret: '',
  resave: false,
  saveUninitialized: false
}));

// Initialize Passport
app.use(passport.initialize());
app.use(passport.session())

// Include Passport Facebook authentication strategy


// Include auth routes
app.use(authRoute)
app.use('/auth', facebookRoute)

// Connect to MongoDB
mongoose.connect('mongodb://localhost....')
  .then(() => {
    console.log("Connected to MongoDB");
  })
  .catch((error) => {
    console.error("MongoDB connection error:", error);
  });


const port = process.env.PORT || 8081;
app.listen(port, () => {
  console.log(`Server listening on port ${port}`);
});


i hope i can find a solution why is the xhr being blocked

0

There are 0 answers