У нас есть сценарий, когда пользователь переключается между всеми своими арендаторами.
Пользователь: user1@home.com Пользователь приглашен к другому арендатору "external.com" (другому арендатору)Таким образом, теперь пользователь является частью 2 арендаторов: home.com и external.com
authContext = new AuthenticationContext({
clientId,
tenant: 'home.com'
instance,
redirectUri,
cacheLocation: 'localStorage',
navigateToLoginRequestUrl: true,
loadFrameTimeout: 6000,
loginResource: 'abc.com',
callback,
})
Итак, если пользователь хочет войти в систему арендатора, где он/ она гость, ей нужно передать клиента в AuthenticationContext как external.com
Пользователь вошел в приложение:
authContext = new AuthenticationContext({
clientId,
tenant: 'external.com', //changed here
instance,
redirectUri,
cacheLocation: 'localStorage',
navigateToLoginRequestUrl: true,
loadFrameTimeout: 6000,
loginResource: 'abc.com',
callback,
})
Но Adal поддерживает кэш вlocalStorage и, следовательно, возвращаемый токен предназначен для home.com . Один из способов, который я смог найти, - это очистить кеш перед тем, как использовать переключатель
authContext.clearCache()
Хотел бы узнать, правильный ли это способ в этой ситуации, или существует какой-то лучший способ справиться с этим?