gpt4 book ai didi

node.js - sails .js : How to return access token after user registration using sails-generate-auth?

转载 作者:搜寻专家 更新时间:2023-10-31 23:17:34 25 4
gpt4 key购买 nike

我正在使用 sails-generate-auth在我的 sails.js 应用程序中。我关注了this将其与我的应用程序集成的教程。当我调用 localhost:1337/auth/local/register 时,它会路由到我在 AuthController 中的 callback 操作。我的回调 Action 如下

callback: function (req, res) {
function tryAgain(err) {
//some validation
}
}

passport.callback(req, res, function (err, user, challenges, statuses) {
if (err || !user) {
return tryAgain(challenges);
}

req.login(user, function (err) {
if (err) {
return tryAgain(err);
}

//Return the access token created by passport instead of success.
res.send("Success");
});
});

我想用 passport 创建的 access token 替换 res.send("Success");。但是此时 User.passport 似乎为空。此时如何获取用户的access token

最佳答案

您获得的用户仅包含来自“用户集合”的数据,其中包含用户名电子邮件和 ID。 “Passport”集合是一个单独的集合,其中包含散列密码、ID、用户 ID(等于“User”集合中的 ID)和 token 。您需要在“Passport ”集合中搜索相关用户。这是算法:

passport.callback(req, res, function (err, user, challenges, statuses) {
if (err || !user) {
console.log(err);
return tryAgain(challenges);
}

req.login(user, function (err) {
if (err) {
console.log(err);
return tryAgain(err);
}

// Mark the session as authenticated to work with default Sails sessionAuth.js policy
req.session.authenticated = true

console.log(user);
var userID = user.id;
Passport.find({user: userID}, function(err, items){
if(err) return err;

console.log(items[0].accessToken);
// Make sure you dont give them any sensetive data
res.json({userData: user, token: items[0].accessToken});
});
// Upon successful login, send the user to the homepage were req.user
//res.redirect('/');
});
});

关于node.js - sails .js : How to return access token after user registration using sails-generate-auth?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29770965/

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