0

相信我,如果我有其他选择,我会接受,但我无能为力。

我正在为一家大公司工作,该公司已经拥有一个专门用于授权的整个图书馆。然而,授权在很大程度上是有效的,它的工作方式是将您的应用程序放在渲染函数中的授权组件之间,就像这样。您不能更改授权组件的代码。

您还应该使用该库自己的 Redux 存储,并且您可以向该库添加减速器,但不能添加中间件。您不能触摸此代码。

   <Provider store={importedStore}>
     <AuthorisedComponent
        organisationId={orgId}
        journeyConfig={journeyConfig}
        allowUnauthorised={true}
        data-selector="journey"
      >
        <YourApp/>
      </AuthorisedComponent>
   </Provider>

这就是事情变得棘手的地方——而且有点……非常规。AuthorizedComponent正在进行 API 调用以获取 JWT 令牌,到目前为止,一切都很好,但它没有将 jwt 令牌存储在内存、会话存储或本地存储中的任何位置。相反,它将其存储在不可公开访问的内部状态中。但是,我可以查看源代码。

需要该 JWT 令牌进行 API 调用以构建此新功能。

我想做的是:

const ExtendedAuthorizedComponent = React.cloneElement(<AuthorizedComponent/>)
ExtendedAuthorizedComponent.prototype.handleLogin = new function.  

我知道这是一种反模式。我知道你不应该这样做。但是我的时间不多了,只有两个错误是正确的方法。

4

0 回答 0