gpt4 book ai didi

mongodb - 结合koa-passport和koa-router(获取用户数据)

转载 作者:可可西里 更新时间:2023-11-01 10:43:14 26 4
gpt4 key购买 nike

我已经创建了一个登录名,它能够登录一个用户并存储该用户(如果他们是数据库中的新用户)。

然后用户被重定向到 /,然后检查他们是否已通过身份验证,请参见下文 (app.js):

.get('/', function* () {
if (this.isAuthenticated()) {
yield this.render('homeSecure', {}); // <-- need user data here
} else {
yield this.render('homePublic', {});
}

正如我在代码中评论的那样,我想发送已登录的用户对象。我不知道如何获取已登录人员的 ID,因为 koa 的文档通常不是和 express 一样完整。

我正在使用 koa-generic-session-mongo 来处理我的 session 。这是我的 GoogleStrategy (auth.js):

var user = null;
// ...
var GoogleStrategy = require('passport-google').Strategy;
passport.use(new GoogleStrategy({
returnURL: 'http://localhost:' + (process.env.PORT || 3000) + '/auth/google/callback',
realm: 'http://localhost:' + (process.env.PORT || 3000)
},
function (identifier, profile, done) {
var emails = new Array();
for (var i = 0; i < profile.emails.length; i++) {
emails.push(profile.emails[i].value);
}
co(function* () {
yield users.findOne({
emails: emails
});
});
if (user === null) { // first time signin, create account
co(function* () {
user = {
id: 1,
name: profile.displayName,
emails: emails
};
yield users.insert(user);
});
}
console.log(user);
done(null, user);
}));

最佳答案

publicRouter
.get('/', function* () {
if (this.isAuthenticated()) {
yield this.render('homeSecure', {
user: this.req.user
});
} else {
yield this.render('homePublic', {});
}
})...

关于mongodb - 结合koa-passport和koa-router(获取用户数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29326955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com