goroutines的变量

Im currently making a web app using Go. I want to know on my templates when the user is logged in or not and I am currently making it using this approach

response := &viewCharacter{true}
template.Renderer.ExecuteTemplate(w, "character_search.html", response)

As you see I am passing a viewCharacter struct that only contains a bool Logged then on a template I can do the following

{{ if .Logged }}

Is there any other approach to do this? instead of passing on each template a logged bool?

Maybe setting a variable for each goroutine of the http handler that saves if the user is logged or not?

There are only two ways that I know to communicate between the go code and the template.

The first one is the one you use. By passing a struct to the ExecuteTemplate function you can access all its field in the template.

The second one is to register other functions using:

func (t *Template) Funcs(funcMap FuncMap) *Template

See documentation for more information. The funcMap is a simple map[string]interface{}, you can register any function and call it in the template by using its name (the key of the map).