Кластеризация сеансов Revel с помощью Redis

в то время как в crystal # kemal у меня есть метод before_all, который будет шлюзом запроса (и для проверки подлинности)

before_all do |env|
  # go to /login if user doesn't have cookie (set cookie on login)
  if env.request.path != "/login"
    if env.request.cookies.has_key?("guid") == false
      env.redirect "/login"
    else
      user_guid = env.request.cookies["guid"].value
      # if in redis is logged, but not in the app
      if is_logged_in(user_guid)
        if !is_logged(env)
          app_sess_set(env, user_guid)
        end
      else
        env.redirect "/login"
      end
    end
  end
end

есть ли у Revel такой метод, как before_all, и могу ли я сделать как у kemal?


person Luna Eidenhoven    schedule 05.10.2018    source источник


Ответы (1)


http://revel.github.io/manual/interceptors.html

func (c App) SessionProcess() revel.Result {
    # do action
    return nil
}

func init() {
    revel.InterceptMethod(App.SessionProcess, revel.BEFORE)
}
person Luna Eidenhoven    schedule 05.10.2018