我是nodejs的新手,因此我尝试使用loopback框架实现REST API,以尝试简化构建过程。我正确地做了模型,也使用了一些端点,但是,当与前端(AngularJS)连接时,我发现的所有代码,以及我知道要构建的代码,都需要JWT令牌来执行任何需要授权/身份验证的任务,但是当我登录时,似乎loopback发送了一个uid2令牌。我搜索了很多,在stackoverflow和Github中,我发现最接近的是这个(https://github.com/strongloop/loopback/issues/1905#issuecomment-310382322),但代码似乎在这里失败:
const data = jwt.verify(id, secretKey);
cb(null, {userId: data.id});
任何的想法?
简单来说,您需要知道谁在拨打电话。如果你使用默认的环回认证,你会发现在req
对象中有accessToken
属性,用于标识用户。如果你想使用JWT,你可以使用很多现成的模块,例如。 loopback-jwt或loopback-jwt-advanced。
一般而言,您需要做的是应用负责授权用户的a middleware(我强烈建议您熟悉middleware
术语)。简单来说,中间件是您的请求正在经历的层,您可以将其修改为正文或拒绝请求。
在抽象的步骤中,在您的中间件中,您必须:
req.accessToken
所以现在loopback会知道你是谁,你可以使用ACL。所以这或多或少是这些扩展正在做的事情。