我一直在尝试使用passport.js开发google oauth,当我点击google图像时,控制台响应没有路由匹配位置“/auth/google”
对于客户端,我使用react.js,对于服务器或后端,我使用node.js,express,passor.js
这是我的登录页面
import React from 'react'
import Facebook from '../img/facebook.png'
import Github from '../img/github.png'
import Google from '../img/google.png'
import '../app.css'
export const Login = () => {
const google = ()=>{
window.open('http://localhost:5173/auth/google','_self')
}
return (
<div className='login'>
<h1 className="loginTitle">Choose a Login Method</h1>
<div className="wrapper">
<div className="left">
<div className="logingButton google" onClick={google}>
<img src={Google} alt='' className='icon'/>
</div>
<div className="logingButton facebook">
<img src={Facebook} alt='' className='icon'/>
</div>
<div className="logingButton github">
<img src={Github} alt='' className='icon'/>
</div>
</div>
<div className="center">
<div className="line" />
<div className="or">OR</div>
</div>
<div className="right">
<input type="text" placeholder="Username" />
<input type="text" placeholder="Password" />
<button className="submit">Login</button>
</div>
</div>
</div>
)
}
这是我的 auth.js 文件
const passport = require('passport');
const router = require('express').Router();
const express = require('express')
const app = express();
const CLIENT_URL='http://localhost:5173/';
router.get('/login/success',(req,res)=>{
if(req.user){
res.status(200).json({
success:true,
message:'successfull',
user:req.user,
});
}
});
router.get('/login/failed',(req,res)=>{
res.status(401).json({
success:false,
message:'failure',
});
});
router.get('/logout',(req,res)=>{
req.logout();
res.redirect(CLIENT_URL);
});
router.get('/auth/google',passport.authenticate('google',{scope:['profile']}));
router.get(
'/google/callback',
passport.authenticate('google',{
successRedirect:CLIENT_URL,
failureRedirect:'/login/failed',
})
);
module.exports = router
这个问题你有答案了吗? 我有完全相同的问题。如果你解决了请帮助我!