【问题标题】:Enable multi user access in silent-flow to be able to use server with different accounts parallel在静默流中启用多用户访问,以便能够并行使用具有不同帐户的服务器
【发布时间】:2021-03-05 12:42:49
【问题描述】:

silent-flow 示例完美运行。我可以登录和注销。

但是当我尝试使用 2 个不同的帐户登录 2 个不同的浏览器时。那么旧版浏览器会在页面重新加载时使用上次登录的帐号登录。

我知道它总是从缓存中获取最后一个homeAccountId,如代码所示:

const account = await msalTokenCache.getAccountByHomeId(app.locals.homeAccountId);

我现在的问题是,如何启用多用户?如何重写app.locals?有例子吗?

否则需要为此创建一些自定义代码?

【问题讨论】:

    标签: javascript azure-active-directory msal


    【解决方案1】:

    我想你可以试试this sample

    根据this docgetAccountByHomeId()只支持工作单账户场景,所以这里需要一个新的sample which usesgetAllAccounts()

    【讨论】:

    • 感谢您的回答,但我不确定您的意思。您是否在某个地方找到了解决方案?或者它只是一个不可能的信息。您的图像没有显示解决方案,因为它只需要第一个帐户。目前,我找到了一个解决方案,可以设置 homeAccountId 的浏览器 cookie。这很好用,但不是最高安全性,因为有人可以“简单地”窃取 cookie。
    • 对不起,先生误会了。我以为你想要多个帐户的样本。根据我上面提到的文档,我们可以看到有必要在 getAllAccounts() 之后添加自定义代码来“选择特定帐户”。设置 cookie 可能不是一个完美的选择,但我还没有想出更好的主意。因为我们必须将帐户信息从浏览器发送到服务器,以便后端应用程序知道如何过滤所有缓存的帐户。
    • 正确。好的,所以你不知道这比我的 cookie 解决方案更好。无论如何,如果您发现更安全的东西,请告诉我。 :)
    猜你喜欢
    • 2020-05-13
    • 2015-11-17
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多