【发布时间】:2020-07-28 03:31:48
【问题描述】:
我刚刚开始使用 loopback4,我想保护 /explorer 不被公开。用户最初会看到一个必须输入用户名和密码的页面。如果成功,用户将被重定向到 /explorer,在那里他可以看到所有 API 方法(并执行它们)。如果用户未通过身份验证,则访问路径 /explorer 将给出“未经授权”的响应。有没有办法轻松实现这一点?
【问题讨论】:
标签: node.js api loopback loopback4
我刚刚开始使用 loopback4,我想保护 /explorer 不被公开。用户最初会看到一个必须输入用户名和密码的页面。如果成功,用户将被重定向到 /explorer,在那里他可以看到所有 API 方法(并执行它们)。如果用户未通过身份验证,则访问路径 /explorer 将给出“未经授权”的响应。有没有办法轻松实现这一点?
【问题讨论】:
标签: node.js api loopback loopback4
在https://github.com/strongloop/loopback-next/issues/5758https://github.com/strongloop/loopback-next/issues/5758@ 中讨论为所有路由(包括资源管理器)启用 GLOBAL 默认策略时存在问题
方式是通过选项指定一个全局元数据:
this.configure(AuthenticationBindings.COMPONENT).to({
defaultMetadata: {
strategy: 'JWTStrategy'
}
})
this.component(AuthenticationComponent);
registerAuthenticationStrategy(this, JWTAuthenticationStrategy)
但在启用route.get() 添加的单个端点方面,尚不支持,请参阅code of how explorer is registered。 @loopback/authentication 从控制器类或其成员中获取授权策略名称,但如果控制器中没有定义路由,则只能回退到默认选项,参见 implementation
【讨论】: