0
我想重定向到我的自定義網址。 但是req.query.redirect
未定義。passport-github,req.query.redirect不正確
這裏是我的路線:
app.get('/auth/github', (req: Request, res: Response, next: NextFunction) => {
const redirect: string = encodeURIComponent(req.query.redirect);
let successRedirect: string;
if (redirect) {
successRedirect = `/auth/github/callback?redirect=${redirect}`;
} else {
successRedirect = '/auth/github/callback';
}
passport.authenticate('github', { successRedirect })(req, res, next);
});
app.get('/auth/github/callback', passport.authenticate('github', {
failureRedirect: '/login'
}), (req: Request, res: Response) => {
res.redirect(301, req.query.redirect || '/');
});
successRedirect
是/auth/github/callback?redirect=https%3A%2F%2Fwww.google.com
但是,當瀏覽到/auth/github/callback
,
req.query
爲{code: "bb7d0e867b3aa40f507f"}
,
哪裏是我的req.query.redirect
?我希望req.query.redirect
是https%3A%2F%2Fwww.google.com
。
是啊,我把重定向到'req.session',但似乎有什麼東西'res.redirect'錯誤,它給了我一個錯誤:'不能GET/auth/github/https%3A%2F%2Fwww.google.com' – novaline
它看起來像重定向是URL編碼的,它不應該是。目標不是將它作爲查詢/ URL參數傳遞,而是作爲完整的正確URL。 – robertklep
謝謝。當我刪除'encodeURI'時,它可以工作。 – novaline