В приложении 2 роли:
- Неавторизированный пользователь:
- Может войти в аккаунт, если он есть
- Может пройти регистрацию
- Может посещать только главную страницу
- Авторизированный пользователь:
- Может просматривать страницу со списком всех пользователей
- Может изменять данные своего аккаунта(email, имя и т.д)
- Может изменять пароль от своего аккаунта, если введет старый
- Может удалить свой аккаунт, если пройдет валидацию
- Может выйти из аккаунта
При каждом вводе данных происходит валидация их на стороне сервера.
При посещении каждой страницы проверяется авторизация пользователя, сначала берутся его данные из куки, затем проверяется в базе.
В том случае, если не будет подключения к БД приложения, не будет данных в куки или же не найдется такой пользователь в базе, он не пройдет авторизацию.
Использованные технологии:
- gopkg.in/mgo.v2 - для работы с MongoDB;
- golang.org/x/crypto/bcrypt - для шифрования паролей пользователей;
- github.com/gorilla/mux - как альтернатива mux из пакета net/http;
- остальные библиотеки входят в стандартный пакет Golang.