Выйти из библиотеки MSAL Azure в цели c
У меня проблема с выходом из библиотеки MSAL.
Я использовал библиотеку из: https://github.com/AzureAD/microsoft-authentication-library-for-objc
Я пытаюсь выйти из системы, а затем снова войти с другими учетными данными, но это не работает.
Функция для выхода из системы:
[self.msalClient removeUser: ошибка self.user:&error_];
Пожалуйста помоги
1 ответ
Он будет хранить кэш для пользователя, который вошел в систему. Поэтому вам также необходимо удалить кэш, как показано ниже.
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [cookieJar cookies]) {
if ([cookie.name isEqualToString:@"MSISAuth"] ||
[cookie.name isEqualToString:@"MSISAuthenticated"] ||
[cookie.name isEqualToString:@"MSISLoopDetectionCookie"]) {
[cookieJar deleteCookie:cookie];
}
}
[self.msalClient removeUser:self.user error:&error_];
И есть некоторые другие опции, которые вы можете добавить при входе в систему, как это
[authContext acquireTokenWithResource:resource clientId:clientId redirectUri:[NSURL URLWithString:redirectURI] promptBehavior:AD_PROMPT_ALWAYS userId:nil extraQueryParameters:nil completionBlock:^(ADAuthenticationResult *result) {
}];
куда AD_PROMPT_ALWAYS
будет просить пользователя вводить имя пользователя и пароль каждый раз, когда он входит в систему, независимо от кэша.
AD_PROMPT_REFRESH_SESSION
откроет экран входа, но пароль сохранится. Так что если вы нажмете на userId, он получит необходимые токены.
AD_PROMPT_AUTO
в зависимости от времени истечения сеанса будет перенаправлен на вход