Hi all,
got a new issue I want to share.
Testing my login route manually with :
curl -X POST http://127.0.0.1:8081/users/login -H "Authorization: Basic Ym9iQGV4YW1wbGUuY29tOnNlY3JldA=="
Produces the expected result :
{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIwQTI0MzI5NS0xNUI4LTRERUMtQTExMi03MzczNTk0QTgxRUYiLCJleHBpcmF0aW9uIjoxNzczODQxNTcxLjE1MjQ3N30.ZM6ogjEIxo3ogVp996da9eMu8zaP1_fqjl-05MbPjPk"}
However, loging in from my app with:
func login() async {
guard let login = profile.login else { return }
print ("login \(login)")
let url = URL(string: API_URL + "login")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Basic \(login)", forHTTPHeaderField: "Authorization")
do {
let (data, _) = try await URLSession.shared.data(for: request)
let decoded = try JSONDecoder().decode(ClientTokenResponse.self, from: data)
profile.token = decoded.token
} catch {
print("Erreur : \(error)")
}
}
Where :
struct ClientTokenResponse: Codable {
var token: String
}
Produces an error:
keyNotFound(CodingKeys(stringValue: "token", intValue: nil), Swift.DecodingError.Context(codingPath: [], debugDescription: "No value associated with key CodingKeys(stringValue: \"token\", intValue: nil) (\"token\").", underlyingError: nil))
How can token be nil in this case ? What does intValue mean where a String in expected ?
By the way, I ensured the login was correct with the line :
print ("login \(login)")
And it matches the one sent manually :
login Ym9iQGV4YW1wbGUuY29tOnNlY3JldA==
What do I miss here ? Thanks for your help.