【问题标题】:How to implement JWT auth on Loopback REST API?如何在 Loopback REST API 上实现 JWT 身份验证?
【发布时间】:2019-08-31 07:46:16
【问题描述】:

我是 nodejs 的新手,所以我尝试使用环回框架实现 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});

有什么想法吗?

【问题讨论】:

    标签: node.js rest jwt loopbackjs


    【解决方案1】:

    简单来说,您需要知道谁在打电话。如果您使用默认环回身份验证,您会看到在 req 对象中有标识用户的 accessToken 属性。如果你想使用 JWT,你可以使用很多现成的模块,例如。 loopback-jwtloopback-jwt-advanced

    一般情况下,您需要做的是申请a middleware,该a middleware将负责您的用户授权(我强烈建议您熟悉middleware术语)。简单来说,中间件是您的请求正在经历的一层,您可以修改它的主体或拒绝请求。

    在抽象步骤中,您必须在中间件中:

    1. 从请求中获取令牌
    2. 验证令牌
    3. 根据令牌识别用户
    4. 为给定用户创建环回 AccessToken 实体
    5. 将令牌放在req.accessToken 中,这样现在loopback 将知道您是谁并且您可以使用ACL。

    所以这或多或少是这些扩展正在做的事情。

    【讨论】:

    • 谢谢,我试试中间件:)
    • 呃,也许你可以给我一个如何实现loopback-jwt的例子?我不知道如何在环回中插入中间件:(
    • 给你,有一个很好的例子如何插入中间件:link
    猜你喜欢
    • 2015-05-31
    • 2018-10-27
    • 2017-08-16
    • 2016-03-24
    • 2012-07-15
    • 2021-04-26
    • 2015-01-21
    • 2014-07-03
    • 1970-01-01
    相关资源
    最近更新 更多