diff options
-rw-r--r-- | modules/caddyhttp/caddyauth/caddyauth.go | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/modules/caddyhttp/caddyauth/caddyauth.go b/modules/caddyhttp/caddyauth/caddyauth.go index dc1dc99..a6165d4 100644 --- a/modules/caddyhttp/caddyauth/caddyauth.go +++ b/modules/caddyhttp/caddyauth/caddyauth.go @@ -77,7 +77,10 @@ func (a Authentication) ServeHTTP(w http.ResponseWriter, r *http.Request, next c } repl := r.Context().Value(caddy.ReplacerCtxKey).(*caddy.Replacer) - repl.Set("http.authentication.user.id", user.ID) + repl.Set("http.auth.user.id", user.ID) + for k, v := range user.Metadata { + repl.Set("http.auth.user."+k, v) + } return next.ServeHTTP(w, r) } @@ -92,7 +95,15 @@ type Authenticator interface { // User represents an authenticated user. type User struct { + // The ID of the authenticated user. ID string + + // Any other relevant data about this + // user. Keys should be adhere to Caddy + // conventions (snake_casing), as all + // keys will be made available as + // placeholders. + Metadata map[string]string } // Interface guards |