Мое текущее приложение работает на сервере синтаксического анализа, и я хотел бы перенести его на Kitura. До сих пор мне удалось подключиться к mongodb, который работает за сервером Parse Server, и обслуживать данные.
Для веб-части мне удалось заставить работать базовую аутентификацию http, используя статический словарь с идентификаторами пользователей и паролем.
Я борюсь с частью iOS. У моего приложения уже много пользователей. Пользователи хранятся в таблице в mongodb. Там у меня есть три типа пользователей:
- пользователи фейсбука. Пользователи, которые зарегистрировались, используя свои учетные записи Facebook.
- Прямые пользователи. Пользователи, которые использовали форму регистрации приложения для создания учетной записи.
- Анонимные пользователи. Для них я создаю уникальный идентификатор, который сохраняю на их устройстве, чтобы я мог сохранять их данные. В контексте этого вопроса их следует рассматривать как непосредственных пользователей.
Чтобы перенести пользователей с сервера синтаксического анализа на kitura, я планирую предпринять следующие шаги:
- При первом запуске приложения. Создайте случайный ключ и сохраните его в пользовательской таблице.
- После сохранения используйте этот ключ для входа в Kitura.
- При успешном входе в Kitura удалите ключ.
Я установил клиент мобильного доступа и push-уведомления.
Я не могу решить, какой метод использовать для аутентификации пользователей, как на стороне сервера, так и на стороне клиента.
Пока работает базовая HTTP-аутентификация (только для прямых пользователей), но я считаю, что есть лучший способ.
Моя текущая базовая HTTP-аутентификация
let url = "http://172.20.10.3:8080/private2/class/KiteSpot?responseType=json"
var mutableURLRequest = URLRequest(url: nsURL)
mutableURLRequest.httpMethod = "GET"
let loginString = "<user>:<pass>"
let loginData = loginString.data(using: String.Encoding.utf8)!
let base64LoginString = loginData.base64EncodedString()
mutableURLRequest.addValue("DirectUserToken", forHTTPHeaderField: "X-token-type")
mutableURLRequest.addValue("text/plain", forHTTPHeaderField: "Accept")
mutableURLRequest.addValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
self.sendRequest(mutableURLRequest, onSuccess: onSuccess, onFailure: onFailure)