¿Cómo cargar una imagen usando datos de formulario multiparte de alamofire con autenticación básica?

Soy nuevo en programación y desarrollo de iOS. Necesito cargar una imagen usando datos de formulario de múltiples partes de Alamofire, pero también necesito ingresar el encabezado de autenticación básica.

en este hiloAlamofire 4.0 Cargar encabezado de datos de múltiples partes, parece similar a mi problema, el código es así para cargar

Alamofire.upload(multipartFormData:{ multipartFormData in
         multipartFormData.append(unicornImageURL, withName: "unicorn")
         multipartFormData.append(rainbowImageURL, withName: "rainbow")},
       usingThreshold:UInt64.init(),
       to:"https://httpbin.org/post",
       method:.post, 
       headers:["Authorization": "auth_token"], 
       encodingCompletion: { encodingResult in
        switch encodingResult {
        case .success(let upload, _, _):
            upload.responseJSON { response in
                debugPrint(response)
            }
        case .failure(let encodingError):
            print(encodingError)
        }
    })

pero no sé cómo poner el encabezado de autenticación básica (es decir, nombre de usuario y contraseña). y también confundí dónde debería colocar mis datos de imagen.

Encuentro otro hilo que parece similar a mi problema. aquí está... Cómo cargar MultipartFormData con autenticación usando Alamofire, la solución propuesta es este código:

let username = "username"
let password = "password"

let credentialData = "\(username):\(password)".dataUsingEncoding(NSUTF8StringEncoding)!                  
let base64Credentials = credentialData.base64EncodedStringWithOptions([])
let headers = ["Authorization": base64Credentials]

Alamofire.upload(
    .POST,
    "https://rilbits.com/supersafe/photo/upload",
    headers: headers,
    multipartFormData: { multipartFormData in
        let data = "default".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
        multipartFormData.appendBodyPart(data: data, name: "_formname")
        multipartFormData.appendBodyPart(fileURL: fileURL, name: "photo")
    },
    encodingCompletion: { encodingResult in
        switch encodingResult {

        case .Success(let upload, _, _):
            upload.responseString { response in
                debugPrint(response)
            }

        case .Failure(let encodingError):
            print(encodingError)
        }
    }
)

pero después de arreglar el swift 4.1 da un error:

¿Podrías ayudarme con mi problema? Gracias por adelantado :

Respuestas a la pregunta(3)

Su respuesta a la pregunta