相信我,如果我有其他选择,我会接受,但我无能为力。
我正在为一家大公司工作,该公司已经拥有一个专门用于授权的整个图书馆。然而,授权在很大程度上是有效的,它的工作方式是将您的应用程序放在渲染函数中的授权组件之间,就像这样。您不能更改授权组件的代码。
您还应该使用该库自己的 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.
我知道这是一种反模式。我知道你不应该这样做。但是我的时间不多了,只有两个错误是正确的方法。