package
8.2.2+incompatible
Repository: https://github.com/lucbarr/extensions.git
Documentation: pkg.go.dev
# README
Usage example
oauth2 authenticator
import (
"github.com/topfreegames/extensions/oauth2"
o2 "golang.org/x/oauth2"
)
authenticator := oauth2.Google(
&oauth2.PGTokenStorage{
TableName: "oauth2_tokens",
DB: a.DB,
},
).
ClientID(a.Config.GetString("oauth2.clientID")).
ClientSecret(a.Config.GetString("oauth2.clientSecret")).
RedirectURL(a.Config.GetString("oauth2.redirectURL")).
AllowedEmailDomains(
a.Config.GetStringSlice("oauth2.allowedEmailDomains")...,
).
AuthCodeOptions(o2.AccessTypeOffline, o2.ApprovalForce)
}
*mux.Router
r := mux.NewRouter()
r.Use(middleware.Version(models.AppInfo.Version))
r.Use(middleware.Logging(a.Logger))
r.Use(middleware.Metrics(a.MetricsReporter))
r.Use(middleware.DB(a.DB))
r.Use(
middleware.OAuth2(
config.GetBool("oauth2.enabled"),
a.configureAuthenticator(),
middleware.OAuth2Paths{
Whitelist: []string{"/healthcheck"},
Login: "/login",
Logout: "/logout",
},
),
)
r.Handle("/healthcheck", Chain(
NewHealthcheckHandler(a),
)).Methods("GET").Name("healthcheck")
r.HandleFunc("/login", BlankHandler).Methods("GET").Name("login")
r.HandleFunc("/logout", BlankHandler).Methods("GET").Name("logout")
# Packages
Package mocks is a generated GoMock package.
# Functions
BodyParser middleware.
Chain applies middlewares to a http.HandlerFunc.
DB middleware.
GetBody returns a pginterfaces.DB from context.
GetDB returns a pginterfaces.DB from context.
GetLogger returns a logrus.FieldLogger from context.
GetMetricsReporter returns a MetricsReporter from context.
GetStatusCode tries to get the StatusCode of a WrappedResponseWriter.
Jaeger is a middleware for tracing.
Logging middleware.
Metrics middleware.
NewDogStatsD ctor.
NewMetricsReporter ctor.
NewResponseWriter ctor.
OAuth2 middleware.
SetLogger returns a context with a logrus.FieldLogger set.
UseResponseWriter wraps a handler with a middleware.ResponseWriter.
Validator middleware.
Version middleware.
# Variables
MetricTypes constants.
# Structs
DogStatsD metrics reporter struct.
OAuth2Paths describe paths used by OAuth2 middleware.
ResponseWriter is a wrapper around http.ResponseWriter.
# Interfaces
MetricsReporter interface.