几周前我一直在使用 Sails,我来自 Rails,我没有任何使用 Node.js 的经验。
现在我正在尝试使用 jsonwebtoken 进行强大的令牌身份验证。 https://github.com/auth0/node-jsonwebtoken
我按照本指南http://thesabbir.com/how-to-use-json-web-token-authentication-with-sails-js/一切正常。我可以进行注册、登录,然后正确地使用令牌进行不同的操作。
现在,我想在某些操作中使用登录用户,例如设计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。
我想存储当前用户,以便以后能够在某个控制器中使用它,而无需在每个控制器中重复相同的代码,比如帮助程序或服务。