连续登录后未定义 Passport context.req.user (express/graphql)
Posted
技术标签:
【中文标题】连续登录后未定义 Passport context.req.user (express/graphql)【英文标题】:Passport context.req.user undefined after successive logins (express/graphql) 【发布时间】:2018-07-25 11:54:07 【问题描述】:我正在尝试将 passport.js 添加到 graphql 端点演示
相关代码: https://gist.github.com/Falieson/855abee65621191d78575b7f28b26191#file-passport-ts-L28
loginUser 突变有效,但我希望在第二次登录时
context.req.user 是护照信息,不是未定义
我认为一切都在 server/server.ts 中正确设置
app.use(bodyParser.json());
passport.use(Passport.Collection.createStrategy())
passport.serializeUser(Passport.Collection.serializeUser())
passport.deserializeUser(Passport.Collection.deserializeUser())
app.use(
session(
secret: 'keyboard cat',
saveUninitialized: true,
resave: true,
store: new mongoStore( mongooseConnection: mongoose.connection )
)
);
app.use(passport.initialize());
app.use(passport.session());
const rootValue =
me: function (args: any, req: any)
return req.user;
app.use(
GRAPHQL_REST,
bodyParser.json(),
graphqlExpress((req, res) =>
// console.log('user: ', req.user);
return
schema,
rootValue,
context: req
)
)
我想如果你想要一个 repo 来重现,请告诉我。
【问题讨论】:
【参考方案1】:这个问题与 Passport 或 Express 或我的代码无关,而是 graphql-playground https://github.com/graphcool/graphql-playground/issues/576 的问题
【讨论】:
以上是关于连续登录后未定义 Passport context.req.user (express/graphql)的主要内容,如果未能解决你的问题,请参考以下文章
Facebook 登录在用户个人资料中返回“未定义”字段,并且不返回电子邮件。 MEANJs + Passport-facebook
Node + Express + Passport + Mongoose:req.user 未定义
req.user.displayname 未定义 Nodejs + passport = google oauth