因此,我正在开发这个简单的应用程序,该应用程序将基本上包含3个内容:
所以我首先要拥有这个路由器:
# oauthcallback.js
# I defined it in main app.js as:
# app.use('/oauthCallback', oauthCallbackRouter)
router.get('/', async (req, res, next) => {
const code = req.query.code
const user = await getGoogleAccountFromCode(code)
res.locals.user = user.email
res.redirect('/devices')
});
和第二个用于显示实际数据的路由器:
# devices.js
# I defined it in main app.js as:
# app.use('/devices', devicesRouter)
router.get('/', async (req, res, next) => {
const freshServiceUserId = await fetchDevices(res.locals.user.email)
res.render('devices', { devices });
});
但是该解决方案无法正常工作,因为重定向后似乎清除了本地人。我当然可以使用next()
代替res.redirect('/devices')
,并将路由器流更改为app.use('/oauthCallback', oauthCallbackRouter, devicesRouter)
但这会保留“不太好”的oauth网址(我想更改为/ devices)。
在进行身份验证后,有没有更好的方法可以导航到新的url,但又不会丢失在OAuth身份验证期间收到的数据? (我知道我可以使用会话...但是我不确定这是否是解决此问题的正确方法...我觉得有一种更简单的方法...在那里吗?)