Бэкэнд-аутентификация и взаимодействие веб-приложения - PullRequest
1 голос
/ 02 июня 2011

В настоящее время я пишу бэкэнд веб-приложения на Go. Каков наилучший способ сделать какой-либо API доступным для стандартного внешнего интерфейса jQuery AJAX для взаимодействия с моим бэкэндом?

Прямо сейчас, у меня есть некоторые функции, которые принимают некоторые данные, выполняют операции и возвращают другие данные, но куда именно мне идти оттуда? У меня есть смутная идея прослушивать какой-либо порт для вызова функции в кодировке JSON и возвращать вывод этой функции в кодировке JSON, но (если это хороший способ сделать это), каков наилучший способ сделать это?

Кроме того, как именно мне следует обрабатывать систему входа и / или аутентификации с помощью Go / AJAX? Имеет ли смысл возвращать какой-то уникальный ключ хеша для этого пользователя (сохранить его в файле cookie, если выбран постоянный вход в систему), сохранить этот ключ в памяти и отправить этот ключ в качестве параметра каждого вызова функции в кодировке JSON, отправляемого в сервер? Или есть лучший способ сделать это (я не разбираюсь в системах входа в систему) или, возможно, решение, уже разработанное для Go?

1 Ответ

1 голос
/ 08 июня 2011

Goajax - это пакет JSON-RPC для go. Стиль в некоторой степени заключается в том, что вы передаете ему имена функций и параметры через JSON, и он возвращает JSON в качестве ответа.

Лично я предпочитаю REST -услуги. REST использует стандартные веб-технологии, особенно HTTP и URI для передачи ресурсов и того, что с ними делать. JSON также очень эффективен для этого. Для REST-сервиса есть библиотека rest.go (также, fork ).

Для аутентификации вы можете посмотреть authcookie . "осуществляет создание и проверку подписанных файлов cookie для аутентификации."

Распространенным способом является использование хеша через cookie (или param в качестве альтернативы). Убедитесь, что вы знаете, что вы делаете их безопасными. Используйте HTTPS для предотвращения подслушивания (WLAN, публичные сети, человек в середине). То, как вы их сначала подтвердите, зависит от того, что вы на самом деле делаете. Также обязательно подумайте о времени жизни сессии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...