Small collection of reusable Go middleware.
github.com/salivare-io/middleware/chi- chi middlewares for logging and bearer auth.
Adds request logging with slogx and keeps request ID in the logger context (compatible with chi's middleware.RequestID).
r := chi.NewRouter()
log := slogx.New(slog.NewJSONHandler(os.Stdout, nil))
r.Use(chimw.RequestID)
r.Use(rpcmiddleware.LoggerContext(log))
r.Use(rpcmiddleware.Logger(log))Validates Authorization: Bearer <token> using a minimal interface to avoid hard dependencies.
type AppManager struct{}
func (m *AppManager) VerifyBearerToken(ctx context.Context, token string) (string, error) {
// ...
return "app-id", nil
}
r.Use(rpcmiddleware.Bearer(&AppManager{}))The middleware stores two values in context:
- auth marker:
rpcmiddleware.FromContext(ctx) - app ID:
rpcmiddleware.GetAppIDFromContext(ctx)