首页 > 解决方案 > 如何通过用户名和密码保护环回资源管理器?

问题描述

我刚刚开始使用 loopback4,我想保护 /explorer 不被公开。用户最初会看到一个必须输入用户名和密码的页面。如果成功,用户将被重定向到 /explorer,在那里他可以看到所有 API 方法(并执行它们)。如果用户未通过身份验证,访问路径 /explorer 将给出“未经授权”的响应。有没有办法轻松实现这一点?

标签: node.jsapiloopbackloopback4

解决方案


https://github.com/strongloop/loopback-next/issues/5758中讨论为所有路由(包括资源管理器)启用 GLOBAL 默认策略时存在问题

方法是通过选项指定全局元数据:

this.configure(AuthenticationBindings.COMPONENT).to({
  defaultMetadata: {
    strategy: 'JWTStrategy'
  }
})
this.component(AuthenticationComponent);
registerAuthenticationStrategy(this, JWTAuthenticationStrategy)

但在启用由 添加的单个端点方面,route.get()尚不支持,请参阅资源管理器如何注册的代码@loopback/authentication从控制器类或其成员中检索身份验证策略名称,但如果控制器中未定义路由,则只能回退到默认选项,请参阅实现


推荐阅读