msal - 如何知道给定用户是否已使用 MSAL 登录?
问题描述
使用 msal.js 库(Microsoft 身份验证库),这是了解给定用户是否已经登录的方法?如果用户的凭据已保存在浏览器的存储中,我的意图是避免显示登录弹出窗口
我目前的做法:
function isUserLoggedIn(username) {
const agent = msal.UserAgentApplication(...);
const user = agent.getUser();
return user != null && user.displayableId === username);
}
但我不确定是否必须检查用户凭据是否已过时/过期。哪个是正确的方法?
解决方案
使用 MSAL 代理实例,您可以获得用户信息,因为它已被缓存。获取信息(如 userId)并不意味着用户的凭据仍然有效(已登录)。要 100% 确定用户已登录,请索要令牌
const promise = agent.acquireTokenSilent(...)
如果用户没有登录,promise 将被拒绝并返回错误代码user_login_error 如果,另一方面,用户仍然登录,promise 将被解决
推荐阅读
- tensorflow - 如何访问序列类型的值?
- mysql - MySQL 1114 错误,表 /tmp/#sql 已满
- r - 处理已经在 r 中半汇总的数据
- api - 谷歌分析数据 API - 属性 ID
- qml - 如何跟踪 QML 粒子死亡
- python - Pandas 根据时间间隔删除重复的行
- android - Flutter generateJsonModelDebug 同时使用 ffi 包含的库
- oracle - 需要帮助将 Oracle 触发器转换为 Mariadb
- reactjs - 在使用 redux-observables 开始另一个史诗之前,如何等待不同的史诗完成并更新商店?
- android - 如何合并两个 Firestore 查询以作为 Kotlin 上的选项传递