首页 > 解决方案 > 使用外部文件丢失快速请求的数据:使用护照和谷歌身份验证

问题描述

我有两个版本的 app.ts,第一个运行良好,第二个不行。

这是 v1 :

//app.ts    
import passport from "./setup/passport";

const app: Express = express()

app.use(passport.initialize())
...
app.get('/auth/google', googleAuthRoute(passport))

app.get('/auth/google/callback', passport.authenticate('google', { session: false, failureRedirect: '/login' }),

function (req, res: any) {
    console.log(req?.user) //works well: shows user
})

这是 v2:app.ts

import passport from "./setup/passport";

const app: Express = express()

app.use(passport.initialize())
...
app.get('/auth/google', googleAuthRoute(passport))

app.get('/auth/google/callback', googleAuthCallbackRoute(passport))

和路线/googleAuth.ts

export const googleAuthCallbackRoute = (passport: PassportStatic) => {
    
    return passport.authenticate('google', { session: false, failureRedirect: '/login' }),

        function (req: Request, res: Response) {
            console.log(req?.user) //not working: user is undefined, the req object is not empty
        }
}

任何想法 ?

标签: typescriptexpresspassport.jspassport-google-oauth

解决方案


推荐阅读