Я пытаюсь связаться с сервером Coinbase API.Я думаю, что попробовал каждую перестановку HMAC, ключа, подписей, времени и т. Д. И просто не могу пройти аутентификацию.
Я использую AlamoFire и Moya для моих вызовов REST:
Вотмой последний код HMac, который проверяет:
func getHMacSHA256(forMessage message: String, key: String) -> String? {
let hMacVal = HMAC(algorithm: HMAC.Algorithm.sha256, key: key).update(string: message)?.final()
if let encryptedData = hMacVal {
let decData = NSData(bytes: encryptedData, length: Int(encryptedData.count))
let base64String = decData.base64EncodedString(options: .lineLength64Characters)
print("base64String: \(base64String)")
return base64String
} else {
return nil
}
}
Далее у нас есть код, который создает заголовки:
var headers: [String:String]? {
let ts = Int64(Date().timeIntervalSince1970)
print(UserDefaults.standard.string(forKey: "UserUUID")!)
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let prehash = "\(ts)" + method.rawValue + "/v2/" + path// + finalBody
print (prehash)
let signature = getHMacSHA256(forMessage: prehash, key: appDelegate.tempCredential.apiSecret)!
let obj = [
"content-type" : "application/json",
"CB-ACCESS-KEY" : appDelegate.tempCredential.apiKey,
"CB-ACCESS-SIGN" : signature,
"CB-ACCESS-TIMESTAMP": "\(ts)"
]
print(obj)
return obj
}
Кто-нибудь видит, что я делаю неправильно?
Спасибо