首页 文章

使用MSAL的SPA App Azure B2C身份验证 . 让用户登录

提问于
浏览
1

我有一个SPA应用程序(VueJS),它使用Azure B2C和MSAL来验证用户 . 身份验证工作正常 .

但是不起作用的是,用户没有保持登录状态 .

只要我使用该应用程序,一切正常 . 但是,当我第二天启动我的应用程序时,我必须重新登录(或者只是重新选择我想要使用的帐户),但我希望拥有相同的使用体验,例如天蓝色的门户网站 . 我可以在一周后重新访问门户网站,而不必重新登录 .

我如何使用MSAL实现此行为?这个库甚至可以实现吗?该库使用implicid流程 .

我可以使用另一个图书馆吗?

2 回答

  • 0

    通常,基于浏览器的应用程序不应该让用户登录,因为身份提供者处的活动(例如密码更改或重置)可能使持久会话无效并且应该强制进行交互式登录 .

    您应该考虑已为custom policies启用的the "keep me signed in (KMSI)" capability .

  • 1

    答案之前......

    我认为你可能需要通过查看网络跟踪工具来扩展正在发生的事情 . 此外,正如另一个答案所说,KMSI将有所帮助,但可能不是这里唯一的问题 . 我建议查看是否正在设置cookie(检查下方),您的应用程序是否成功获取ID,访问令牌,并在后续身份验证请求中检查此状态 .

    基础知识

    使用MSAL.js的SSO是绝对可能的,并且应该在没有太多配置的情况下发生 . 对于实现身份验证的基于浏览器的应用程序中的某些背景,实现SSO是cookie /会话的一个因素,而不是令牌/令牌管理 .

    这是如何运作的

    当您的单页应用程序将用户重定向到Azure AD B2C登录页面并且最终用户成功登录时,Azure AD将在该最终用户的浏览器中设置cookie . 然后,当您的应用想要为用户获取ID令牌或访问令牌时(假设初始登录中的现有签名已过期),MSAL可以在后台启动静默i帧,重定向到Azure AD具有特殊查询参数( prompt=none )的站点,并使用先前设置的cookie .

相关问题