【发布时间】:2017-04-27 16:48:05
【问题描述】:
几周前我一直在使用 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。
我想存储当前用户,以便以后能够在某个控制器中使用它,而无需在每个控制器中重复相同的代码,比如帮助程序或服务。
【问题讨论】: