Подтвердить что ты не робот

Есть ли платформа или пакет Go, обеспечивающий поддержку аутентификации с помощью консервированных пользователей?

Я довольно испорчен зрелыми фреймворками, доступными в Python (Django/Flask), так как я начинаю изучать Go, мне нужно задаться вопросом, существуют ли какие-либо аналогичные структуры, уже существующие в Go to django. contrib.auth или Flask-Login?

Основным вариантом использования является обработка простой пользовательской аутентификации и возможность ее расширения для размещения некоторой маршрутизации на основе разрешений в приложении.

4b9b3361

Ответ 1

Насколько я знаю, нет. Самая близкая из готовых к использованию аутентификация, которую вы, возможно, получите, - через Google AppEngine, где можно найти учетную запись user Google, а определенные пути могут быть охвачены app .

На стандартном веб-сервере Go вам, как правило, нужно будет свернуть собственный auth, но это не так сложно, как кажется. Многие рамки изолируют вас от решений, которые на самом деле очень важны; в типичной моде Go, вам нужно будет принять эти решения на основе потребностей вашего приложения, а затем выбрать существующие библиотеки, которые вам подходят.

Страница входа

Где бы вы не нуждались в ваших пользователях для входа в систему, вы, вероятно, используете HTML-форму. Они обычно будут отображаться с помощью пакета html/template. Чтобы получить значения при отправке формы, используйте request.FormValue.

База данных

Существует несколько способов хранения информации о пользователе; в файловой системе с os или в базе данных SQL с помощью database/sql. Есть также зрелые драйверы для некоторых баз данных NoSQL, в том числе MongoDB и Redis.

Пароли

Чтобы вычислить и сравнить хэши с паролями, вы хотите использовать существующий механизм, чтобы вам не пришлось повторно изобретать его самостоятельно. Для этого go.crypto subppository предоставляет пакет bcrypt.

Сессия

Если вы хотите сохранить данные сеанса, вы можете использовать такое решение, как gorilla/sessions. Основываясь на ваших потребностях в безопасности, вы можете хранить данные сеанса непосредственно в файле (опционально защищенный) или вы можете сохранить его в бэкэнд, чтобы хранить только идентификатор сеанса в печенье.