Swift 4 - Alamofire - Authenticate NTLM trabalha com credenciais inválidas

votos
1

Estou tendo um problema com credenitals NTLM autenticar, quando eu usar credenciais válidas, ele funciona, mas quando eu uso credenciais inválidas não falha, ele funciona como a mesma que faria com credenciais válidas. Este é apenas o caso quando eu inserir credenciais válidas pela primeira vez. Existe afastado para limpar as credenciais ou o que estou fazendo de errado aqui? Aqui está o meu código:

func loginUser(_ username: String, password: String, completion: @escaping (_ result: Bool) -> Void)
    {

        let user = username

        let password = password

        let url = webservice

        let credential = URLCredential(user: user, password: password, persistence: .none)

        let headers = [Accept: application/json;odata=verbose, Content-type: application/json;odata=verbose]

        Alamofire.request(url, method: .get, headers: headers).authenticate(usingCredential: credential).responseJSON {
                (response) in

                print(response.result)

                switch response.result {

                case .success:
                    if let value = response.result.value {

                        completion(true)

                    }else{

                        print(There is error in the server response)

                        completion(false)
                    }

                case .failure (let error):

                    print(The NTLM request error is: , error.localizedDescription)

                    completion(false)

                }

            }

    }

Uma coisa que eu notei, se eu entrar creds válidos, em seguida, aguarde alguns minutos e entre os inválidos funciona como esperado.

Publicado 13/01/2020 em 23:49
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

.failurenão é devolvido para erros de HTTP. Você precisa olhar para o código de resposta no caso .success para a resposta HTTP que indica que auth falhou.

Olhe aqui: Swift Alamofire: Como obter o código de status de resposta HTTP para saber como fazer isso.

Respondeu 13/01/2020 em 23:55
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more