我几周前开始使用Sails,之前我使用的是Rails,没有使用Node.js的经验。
现在我正在尝试使用jsonwebtoken创建一个强大的令牌身份验证。 https://github.com/auth0/node-jsonwebtoken
我遵循了这个指南http://thesabbir.com/how-to-use-json-web-token-authentication-with-sails-js/,一切都很顺利。 我能够进行注册、登录,然后正确地使用令牌进行不同的操作。
现在,有些操作需要使用登录用户,类似于devise中的current_user
助手。
例如,在创建评论时,此评论应属于当前用户。
使用Sabbir Ahmed的指南,在isAuthorized.js策略的第33行解密令牌,因此我可以从那里获取当前用户ID。
所以,我的问题是,获取当前用户并能够稍后在某个控制器中使用它的最佳方法是什么? 例如,我尝试了以下内容:
# isAuthorized.js line 34, after getting decrypted token
User.findOne({id: token.id}).exec(function findOneCB(err, found){
currentUser = found;
});
然而,由于这是异步操作,所以我不能在控制器中使用此currentUser。
我想存储当前用户,以便稍后可以在某些控制器中使用它,而无需在每个控制器中重复相同的代码,类似于帮助程序或服务。