本质上,我想将带护照的Google Oauth2.0添加到我的Web应用程序中。 目前,我在带有express的后端中安装了Oauth,并希望前端对其进行访问。
想知道我是否应该只在前端调用Oauth并将令牌解析到后端以更新数据库等。
截至目前,我的客户端已经具有对express运行的端口的代理。
我已经尝试在react前端访问在后端中设置的路由,希望它将把我发送到后端中设置的页面,但只会加载我的默认页面路由。
这是我的快速后端路线
async componentDidMount(){
getdata = await this.getData()
alert(getdata);
if (getdata === true){
this.setState({
dialogVisible2:true
});
}
}
这是我的明确index.js
const router = require('express').Router();
const passport = require('passport');
// auth login
router.get('/login', (req, res) => {
res.render('login', { user: req.user });
});
// auth logout
router.get('/logout', (req, res) => {
// handle with passport
res.send('logging out');
});
// auth with google+
router.get('/google', passport.authenticate('google', {
scope: ['profile']
}));
// callback route for google to redirect to
// hand control to passport to use code to grab profile info
router.get('/google/redirect', passport.authenticate('google'), (req, res) => {
res.redirect(req.user)
});
module.exports = router;
这是我的password.config,可将用户保存到数据库中
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// set up session cookies
app.use(cookieSession({
maxAge: 24 * 60 * 60 * 1000,
keys: [keys.session.cookieKey]
}));
// initialize passport
app.use(passport.initialize());
app.use(passport.session());
//MongoDB Database Setup
require('./models/db.js');
//routing Setup
// set up routes
app.use('/auth', authRoutes);
var routes = require('./routes/routes.js');
app.use('/', routes);
// The "catchall" handler: for any request that doesn't
// match one above, send back React's index.html file.
const port = process.env.PORT || 5000;
app.listen(port);
除了我试图在不公开键的情况下在前端调用它,对数据库的调用之后,它保存了,但浏览器返回了未经授权的页面。
感谢任何帮助:),(对不起,我真的没有使用stackoverflow我的格式看起来很糟糕)