GoLang Gin - шаблонизация HTML страниц
Вопрос по использованию шаблонизатора GIN + React фронтенд.
Допустим, пользователь начал регистрироваться на сайте. Ввёл свою почту, затем ввёл код с почты и сейчас ему остаётся придумать пароль. Но пользователь решает обновить страницу, и надо сделать так, чтобы пользователь увидел поле ввода пароля, а не начальный этап процедуры регистрации — ввод почты.
Я вижу два способа решения этой задачи:
Перед тем как отправить страницу регистрации, по куках проверяем что пользователь уже сделал и изменяем шаблон:
func (h *Handler) Join(ctx *gin.Context) { if isCodeSent(ctx) { ctx.HTML(http.StatusOK, "index.html", gin.H{ // Отображаем поле ввода кода с почты "body": template.HTML(_templateConfirmationCode) }) return } if isMailConfirmed(ctx) { ctx.HTML(http.StatusOK, "index.html", gin.H{ /// Отображаем поле ввода пароля "body": template.HTML(_templatePassword), }) return } ctx.HTML(http.StatusOK, "index.html", gin.H{"body": template.HTML(`<body>`)})}
- Переложить всю ответственность за отображение страниц на фронтенд. Соответственно после обновления страницы будем запускать какой-нибудь лоадер и спрашивать сервер по роуту /get-status про текущее состояние и уже отображать нужный этап.
Какой подход считается правильным и что мне выбрать?