Развертывание + быстрая аутентификация пользователя

Я новичок в Свифте. Я хочу аутентифицировать пользователя. Я использую «Deployd» в качестве своего сервера. Вот что говорится в документации API:

HTTP

Чтобы аутентифицировать пользователя, отправьте запрос POST на /login со свойствами имени пользователя и пароля в теле запроса.

ПОСТ/пользователи/логин

{ "имя пользователя": "johnsmith", "пароль": "пароль" }

Я использую Alamofire для анализа данных JSON. Вот мой код:

        let user = "root"
        let password = "root"
        // this is a testing user i've created in deployd's dashboard.

        let credential = NSURLCredential(user: user, password: password, persistence: .ForSession)

        Alamofire.request(.POST, "http://localhost:2406/users/login/\(user)/\(password)")
            .authenticate(usingCredential: credential)
            .response { request, response, _, error in
                println(response)
        }

Это ответ от консоли Xcode:

Optional(<NSHTTPURLResponse: 0x7fdd906dc3a0> { URL: http://localhost:2406/users/login/root/root } { status code: 400, headers {
    Connection = "keep-alive";
    "Content-Type" = "application/json";
    Date = "Thu, 06 Aug 2015 13:01:54 GMT";
    "Transfer-Encoding" = Identity; } })

Я знаю, что делаю это совершенно неправильно.


person Codetard    schedule 06.08.2015    source источник


Ответы (1)


Вы используете http-аутентификацию (заголовки), но сервер / API не запрашивает вас об этом (на самом деле он говорит 400 - неверный запрос - так что это должно указывать на неправильное использование API);

Вместо этого вы должны предоставить параметры в теле запроса, потому что спецификация говорит, что это должно быть то, что вы предоставляете серверу. Для этого используйте другой метод Alamofire, который позволяет включать параметры:

let parameters = ("username" : user, "password" : password)
Alamofire.request(.POST, "http://localhost:2406/users/login", parameters: parameters)

И вообще убрать .authentication из звонка :)

Надеюсь, поможет!

person Jiri Trecak    schedule 06.08.2015
comment
Не беспокойтесь, рад помочь :) Наслаждайтесь! - person Jiri Trecak; 06.08.2015