我在使用 MSAL 库时遇到注销问题。
我使用的库来自:https://github.com/AzureAD/microsoft-authentication-library-for-objc
我尝试注销,然后使用不同的凭据再次登录,但它不起作用。
注销功能是:
[self.msalClient removeUser:self.user 错误:&error_];
请帮忙
最佳答案
它将存储登录用户的缓存。因此您也需要像这样删除缓存。
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,它将获得所需的 token 。
AD_PROMPT_AUTO
基于 session 过期时间将重定向到登录
关于ios - 在 Objective C 中注销用户 MSAL azure 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47007989/