https://github.com/oslokommune/go-oidc-middleware
A middleware for validating JWT tokens made by an OpenID Connect compliant provider
https://github.com/oslokommune/go-oidc-middleware
go golang jwt kjoremiljo oauth2 oidc origohub
Last synced: 5 months ago
JSON representation
A middleware for validating JWT tokens made by an OpenID Connect compliant provider
- Host: GitHub
- URL: https://github.com/oslokommune/go-oidc-middleware
- Owner: oslokommune
- License: mit
- Created: 2020-12-05T09:07:50.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-06-01T19:55:30.000Z (about 3 years ago)
- Last Synced: 2024-06-20T19:30:11.885Z (about 2 years ago)
- Topics: go, golang, jwt, kjoremiljo, oauth2, oidc, origohub
- Language: Go
- Homepage:
- Size: 36.1 KB
- Stars: 3
- Watchers: 5
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-oidc-middleware
A middleware for validating JWT tokens made by an OpenID Connect compliant provider
## How it works
By fetching information from the discovery URL ([.well-known](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata)) it can validate a JWT token sent with an Authentication header.
## Middlewares
### General
#### Relevant middleware function
* `NewAuthenticationMiddleware(discoveryURL url.URL) *jwtmiddleware.JWTMiddleware`
### Gin
#### Relevant middleware function
* `NewGinAuthenticationMiddleware(discoveryURL url.URL) *gin.HandlerFunc`
#### Usage
```golang
import github.com/oslokommune/go-oidc-middleware/pkg/v1/middleware"
func NewRouter() *gin.Engine {
router := gin.Default()
discoveryURL, err := url.Parse("https://auth-provider.url/.well-known/openid-configuration")
if err != nil {
panic(err)
}
router.Use(middleware.NewGinAuthenticationMiddleware(*discoveryURL))
return router
}
```