oauth2-resource-server/cmd/api/context.go
2025-01-02 11:53:35 +08:00

26 lines
547 B
Go

package main
import (
"context"
"net/http"
"greenlight.alexedwards.net/internal/data"
)
type contextKey string
const userContextKey = contextKey("user")
func (app *application) contextSetUser(r *http.Request, user *data.User) *http.Request {
ctx := context.WithValue(r.Context(), userContextKey, user)
return r.WithContext(ctx)
}
func (app *application) contextGetUser(r *http.Request) *data.User {
user, ok := r.Context().Value(userContextKey).(*data.User)
if !ok {
panic("missing user value in request context")
}
return user
}