добавить закрепление с помощью открытого ключа в классе alamofire manger swift - PullRequest
0 голосов
/ 06 марта 2019

вот мой менеджер alamofire, как мне добавить на него пиннинг с открытым ключом? Пожалуйста, помогите мне, я не мог знать, как это сделать в своем коде, если возможно, мне нужно пошаговое объяснение того, как это сделать с AFManager, который имеет все запросы

class AFManager : NSObject{


///without headers (post)
//used this to registration
class func requestPOSTURL(_ strURL : String, params : [String : 
AnyObject]?, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void){
URLCache.shared.removeAllCachedResponses()
Alamofire.request(strURL, method: .post, parameters: params, encoding: URLEncoding.httpBody).responseJSON { (responseObject) -> Void in

    //print(responseObject)

    if responseObject.result.isSuccess {
        let resJson = JSON(responseObject.result.value!)
        success(resJson)
    }
    if responseObject.result.isFailure {
        let error : Error = responseObject.result.error!
        failure(error)
    }
}
}


///// response string (post)
//used this in login // used in change password
class func strRequestPOSTURL(_ strURL : String, params : [String : String]?, headers : [String : String]?, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void){
URLCache.shared.removeAllCachedResponses()
Alamofire.request(strURL, method: .post, parameters: params, encoding: URLEncoding.httpBody, headers: headers).responseJSON { (response) in
    //print(response)

    if response.result.isSuccess {
        let resJson = JSON(response.result.value!)
        success(resJson)
    }
    if response.result.isFailure {
        let error : Error = response.result.error!

        failure(error)
    }

}

  }

}

Я видел этот пример, но не знал, как это сделать и где я должен поместить код, см. Ссылку ниже: https://infinum.co/the-capsized-eight/ssl-pinning-revisited

1 Ответ

1 голос
/ 06 марта 2019

Я бы рекомендовал использовать TrustKit . Это специальная библиотека, которая работает со всем, что основано на NSURLSession, включая Alamofire. В зависимости от вашего варианта использования это может быть так же просто, как добавить несколько значений в Info.plist.

Закрепление сертификата, как и любая мера безопасности, это не то, что вы должны реализовать самостоятельно, но вы должны использовать проверенную библиотеку.

...