我在Node.js上还很陌生,所以我尝试通过回送框架实现REST API,以尝试简化构建过程。我正确地完成了模型,还对一些端点进行了定制,但是当与前端(AngularJS)连接时,我找到的所有代码以及我知道要构建的代码都需要JWT令牌来执行任何需要授权/认证的任务,但是似乎在登录时环回会发送一个uid2令牌。我在stackoverflow和Github中进行了大量搜索,发现最接近的是这个(https://github.com/strongloop/loopback/issues/1905#issuecomment-310382322),但是代码似乎在此处失败:
const data = jwt.verify(id, secretKey);
cb(null, {userId: data.id});
有什么主意吗?
答案 0 :(得分:0)
简单来说,您需要知道谁在拨打电话。如果您使用默认的环回身份验证,则会看到req
对象中有accessToken
属性,用于标识用户。如果您想使用JWT,可以使用很多现成的模块,例如。 loopback-jwt或loopback-jwt-advanced。
通常,您需要做的是应用a middleware来负责用户的授权(我强烈建议您熟悉middleware
这个词)。简而言之,中间件是您的请求正在经历的一层,您可以将其修改为主体或拒绝请求。
在抽象步骤中,您必须在中间件中:
req.accessToken
中,这样环回将知道您是谁,并且可以使用ACL。 所以这差不多就是这些扩展正在做的事情。