ios - 在 Objective C 中注销用户 MSAL azure 库

标签 ios objective-c azure adal azure-ad-msal

我在使用 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/

相关文章:

azure - 如何增加 Azure Analytics Applicationinsights 中分析查询结果的限制

ios - 错误打印 user.default swift 3

ios - 在 iOS 上存储身份验证 token - NSUserDefaults 与钥匙串(keychain)?

iOS:如何在 Swift 中使用 Objective-C 中的#define?

ios - Objective-C iOS6 [ ] 运算符重载(const id [])

azure - Azure 机器学习的端点成本

c# - 无法找到与 'Microsoft.Azure.WebJobs' 兼容的版本

ios - Cordova 2.8.1 : camera. getPicture with photolibarary source on ios

ios - 设置 WebView Delegate 后崩溃

ios - iPhone 不显示准确的颜色