Я работаю над кодированием приложения IOS в SWIFT 4 и использую инфраструктуру ADAL для аутентификации пользователей. Я настроил проверку подлинности, и все идет хорошо до выхода из системы.
Когда я выхожу из приложения, приложение удаляет cookie. При попытке выйти из системы и войти в систему под другим именем Azure AD все еще видит предыдущий файл cookie.
Код функции выхода из системы ниже:
@IBAction func signoutButton(_ sender: Any) {
displaySelectionController.isHidden = true
self.signoutButton.isEnabled = false
self.signoutButton.backgroundColor = #colorLiteral(red: 0.7018831372, green: 0.7020055652, blue: 0.7018753886, alpha: 1)
connectedLabel.isHidden = true
connectedTextInfo.isHidden = true
callGraphButton.isHidden = false
displaySelectionController.isHidden = true
let request = NSMutableURLRequest(url: NSURL(string: "https://login.microsoft.com/logout")! as URL)
request.httpMethod = "GET"
guard let account = currentAccount()?.userInformation?.userId else {
self.updateLogging(text: "Didn't find a logged in account in the cache.")
return
}
ADKeychainTokenCache.defaultKeychain().removeAll(forUserId: account, clientId: kClientID, error: nil)
let cookieJar = HTTPCookieStorage.shared
guard let cookies = cookieJar.cookies else { return }
let cookiesArr = Array(cookies)
for cookie: HTTPCookie in cookiesArr {
if (cookie.name == "SignInStateCookie" || cookie.name == "ESTSAUTHPERSISTENT" || cookie.name == "ESTSAUTHLIGHT" || cookie.name == "ESTSAUTH" || cookie.name == "ESTSSC") {
cookieJar.deleteCookie(cookie)
print(" COOKIE DELETED")
}
}
self.updateLogging(text: "Removed account for: \(account)" )
}