我正在开发一个单水疗应用程序,它基本上具有到另一个 MFE(微前端)的路由映射。
我确实可以访问某些 MFE 的源,但在路由之前我没有拥有一个 MFE(比如说“A”),我应该检查用户权限。
因此,任务是:如果用户具有必要的权限,则将他路由到 MFE“A”,否则将他路由到“访问被拒绝页面”。
我试图在互联网上找到一些解决方案,大多数答案都建议在 MFE “A”(这对我来说是强加的)上执行权限检查。
我发现有一个事件叫做“single-spa:before-routing-event”。
我正在考虑以下解决方案:
window.addEventListener(
'single-spa:before-routing-event',
({ detail: { oldUrl, newUrl, cancelNavigation } }) => {
if (
new URL(oldUrl).pathname === “/MFE/a” && !userHasPermissions()
) {
cancelNavigation();
window.location.href = “http://localhost:8080/accessDeniedPage”
}
},
);
如果有人可以查看解决方案并让我知道它是一个好的解决方案还是有其他方法会非常有帮助吗?
先感谢您!