Путаница аутентификации API

Мой вопрос не глубоко технический, а скорее системный.

Я разрабатываю бэкэнд API в Go Lang. Я хотел бы иметь несколько клиентов, таких как веб-сервер, мобильные телефоны и т. Д. Я полагаю, что все эти клиенты должны иметь секретный ключ API, чтобы проверить, что они могут использовать API. В то же время в веб-интерфейсе будет много пользователей с разными ограничениями. Я хотел бы, чтобы эти пользователи могли войти в систему со своей учетной записи Facebook или Google. Это должно потребовать проверки подлинности OAuth, как я понимаю. Мой вопрос сейчас, где я должен добавить OAuth. Только во внешнем интерфейсе, а затем сохраните пользователя в сеансе или также между внешним и внутренним интерфейсом. Я очень озадачен тем, как мне следует настроить эту связь и аутентификацию.

Я строю веб-сервер на PHP, и я хотел бы, чтобы веб-интерфейс был действительно легким и более или менее функциональным, как пустая оболочка / представление для API Go. Раньше я строил системы на простом PHP / MySQL, но я бы хотел перейти на API на основе Go.

Как будет выглядеть URI для API веб-сервера, скажем, для страницы профиля шоу? Я представляю что-то вроде вызова GET для «http.//backend.com:3000/[api-key]/[api-secret][oauth-token?]/profile. Затем какое-то промежуточное программное обеспечение для аутентификации веб-клиента и другой кусок промежуточного программного обеспечения для аутентификации пользователя. Это был бы «правильный» подход?

Я надеюсь, что вы, ребята, можете указать мне правильное направление.

Заранее спасибо.

0

Решение

Если вы посмотрите документы в Facebook или Google для разработчиков, вы найдете примеры того, как интегрироваться в их системы входа в систему oauth.

OAuth, или, по крайней мере, последний шаг, действительно должен быть сделан на заднем конце, так как вы должны предположить, что ваш передний конец — плохой парень, поражающий вашу систему.

Для того, чтобы пойти, посмотрите на: https://github.com/golang/oauth2

У вас скорее всего будет http.HandlerFunc("/oauth/google",yourGoogleFunc)
а также http.HandlerFunc("/oauth/facebook",yourFBFunc)
введите вещь, затем вы зарегистрируете этот URL в своей учетной записи разработчика в этих компаниях.

во время тестирования проще всего использовать localhost: 8080 (или любой другой) в качестве URL обратного вызова, чтобы он работал на любой машине, если вы используете локальный браузер.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]