GoLang Gin - шаблонизация HTML страниц

Вопрос по использованию шаблонизатора GIN + React фронтенд.

Допустим, пользователь начал регистрироваться на сайте. Ввёл свою почту, затем ввёл код с почты и сейчас ему остаётся придумать пароль. Но пользователь решает обновить страницу, и надо сделать так, чтобы пользователь увидел поле ввода пароля, а не начальный этап процедуры регистрации — ввод почты.

Я вижу два способа решения этой задачи:

  1. Перед тем как отправить страницу регистрации, по куках проверяем что пользователь уже сделал и изменяем шаблон:

     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>`)})
    

    }

  1. Переложить всю ответственность за отображение страниц на фронтенд. Соответственно после обновления страницы будем запускать какой-нибудь лоадер и спрашивать сервер по роуту /get-status про текущее состояние и уже отображать нужный этап.

Какой подход считается правильным и что мне выбрать?


Ответы (0 шт):