NodeJS req.user是未定义的,我很绝望(谷歌OAuth 2)

insrf1ej  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(119)

我在一个域上托管了我的MERN应用程序,我允许在Google控制台中使用URI和JS源代码,但我的auth仍然不起作用,问题是当我在前端fetch('https://example.net/auth/login/success')时,它返回undefined和err 403,当我在服务器代码中console.log用户时也是如此,它是undefined

router.get('/login/success', (req, res) => {
    console.log("REQ.USER")
    console.log(req.user) //ALWAYS UNDEFINED <----------
    if(req.user){
        res.status(200).json({
            success: true,
            message: 'success',
            user: req.user,
            cookies: req.cookies
        });
    }else{
        res.status(403).json({error: true, message: 'Not Authorized'})
    }
})

但是当我在URL栏中输入https://example.net/auth/login/success时,它返回了用户的JSON,这很奇怪
我试着在passport.serializeUserpassport.deserializeUser中注销用户,那里的用户没有未定义,它用用户的google信息注销了一个完整的对象。
我真的不知道该怎么做,下一步该怎么做,有人有什么建议吗?
这是我的index.js mw

app.use(bodyParser.json({ limit: '100mb' }));

app.use(cookieSession(
  {
    name: "session",
    keys:['weerit'],
    maxAge: 24*60*60*1000
  }
))

app.use(passport.initialize());
app.use(passport.session());

app.use(cors({
  origin: [process.env.FRONTEND_URL, process.env.BACKEND_URL],
  methods: 'GET,POST,PUT,DELETE,PATCH',
  credentials: true
}));

app.use('/auth', authRoute);
app.use('/api/users', userRoutes);
app.use('/api/listings', listingRoutes);
3j86kqsm

3j86kqsm1#

router.get('/login/success', passport.authenticate('google'), (req, res) => {
  // rest of your code
})

相关问题