首页 > 解决方案 > 在 Angular 中使用 Auth0 的 AuthHttpInterceptor 时,如何将 URL 与参数匹配?

问题描述

Auth0 提供 AuthHttpInterceptor 以自动将 Bearer 令牌附加到传出的 HTTP 请求。您可以通过执行以下操作来设置拦截器以匹配 App.Module 中的特定路由 URL:

AuthModule.forRoot({
      ...env.auth,
      httpInterceptor: {
        allowedList: [
          `http://localhost:5050/api`,
        ]
      }
    }

我有一个在 URL 中采用模板参数的 URL,因此 URL 类似于

http://localhost:5050/api/123

您可以使用通配符来匹配以该 url 开头的所有路由http://localhost:5050/api/*

以上很好,但这意味着 Bearer 令牌会暴露给与通配符匹配的所有路由,这可能是一个安全漏洞。

当我不知道模板参数会提前是什么时,我希望能够匹配路由。所以我想要一些匹配的东西

http://localhost:5050/api/123
http://localhost:5050/api/456
http://localhost:5050/api/abc456
etc

但是,如果我提供允许的列表http://localhost:5050/apihttp://localhost:5050/api/它不起作用

我怎样才能做到这一点?

标签: angularauth0

解决方案


推荐阅读