2015-02-13 3 views
2

У меня есть приложение с хорошим хостингом в codeigniter, mysql и jquery. В настоящее время мы планируем оценить наше веб-приложение с помощью мобильного приложения. Поэтому мы планировали разработать веб-приложение, Android, ios и Blackberry. Все это родное приложение.Codeigniter RESTful web API для веб-приложений и мобильных приложений

Для всего, что мы планировали разработать codeigniter restful API (это сервер для всех клиентских веб-сайтов и мобильных телефонов). Для веб-приложений мы планировали разработать клиент с угловыми js. Но каждый клиент получает доступ только к веб-серверу api. Мой контроллер codeigniter теперь выглядит как API.

Мой вопрос, 1.Is это хорошая идея, чтобы создать единый сервер для всех клиентов, как веб и мобильных 2.How создать уникальную идентификацию как для веб и мобильных приложений

Поскольку в веб-приложении мы есть сеанс, но в мобильном нет сеанса. Итак, как создать уникальную аутентификацию для обоих приложений.

Я планировал отправить токен клиенту, как только логин будет успешным. И затем после каждого запроса на сервер клиент отправит токен с заголовком запроса. Я не знаю, как сделать то же самое для мобильных приложений, поскольку веб-приложение имеет сеанс, и, следовательно, мы можем сохранить токен в переменной сеанса на сервере. Но в случае мобильного приложения, как создать переменную сервера и поддерживать токены.

Пожалуйста, помогите мне, чтобы разъяснить мои сомнения.

+1

использовать печенье вместо сессий: http://stackoverflow.com/questions/6068113/do-sessions-really-violate-restfulness так, да, его хорошая идея имеют общий бэкэнд для подключения разных устройств (просто репликация для устройства - не очень хорошая идея) –

ответ

0

Вы можете проверить Codeigniter REST контроллер (https://github.com/chriskacerguis/codeigniter-restserver/tree/master/application). Он имеет различные методы POST, GET и т.д.

Для проверки подлинности: Если сервер получить запрос на вход в систему, если параметры входа действительны позволяют пользователю войти в систему, в то же самое время обновить столбец пользователя дб с сессией id (это не идентификатор сеанса php) - создать сеанс с идентификатором пользователя + время + случайную строку sha 1 или другое шифрование. И допустим этот сеанс со всеми другими запросами. Если сеанс не соответствует сервисам, то возвращает недопустимое сообщение сеанса.

Если сервер получает запрос пользователя от пользователя, даже если существует сессия, восстановите сеанс и обновите соответствующий столбец в db, это сделает предыдущий сеанс недействительным.

А также мы можем предоставить API-интерфейс API (известный разработчику сети и приложения) в качестве параметра http-заголовка. Если API-ключ соответствует, то продолжается только запрос. У упомянутого контроллера codeigniter есть возможность установить ключ API.

Надеется, что это понятно ..

Смежные вопросы