https://github.com/janekolszak/gin-hydra
Hydra middleware for Gin
https://github.com/janekolszak/gin-hydra
Last synced: 11 months ago
JSON representation
Hydra middleware for Gin
- Host: GitHub
- URL: https://github.com/janekolszak/gin-hydra
- Owner: janekolszak
- License: mit
- Created: 2016-08-21T21:40:00.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2017-05-15T22:17:55.000Z (about 9 years ago)
- Last Synced: 2025-04-30T06:48:31.746Z (about 1 year ago)
- Language: Go
- Size: 2.93 KB
- Stars: 36
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ory - Ory Hydra Middleware for Gin (Go)
README
# gin-hydra
[Hydra](https://github.com/ory-am/hydra) middleware for [Gin](https://gin-gonic.github.io/gin/) framework.
It uses Hydra's API to extract and validate auth token.
## Install
``` bash
go get github.com/janekolszak/gin-hydra
```
## Example
``` go
import (
"github.com/gin-gonic/gin"
"github.com/ory-am/hydra/firewall"
hydra "github.com/ory-am/hydra/sdk"
gh "go get github.com/janekolszak/gin-hydra"
)
func handler(c *gin.Context) {
ctx := c.Get("hydra").(*firewall.Context)
// Now you can access ctx.Subject etc.
}
func main(){
// Initialize Hydra and gin-hydra
hc, err := hydra.Connect(
hydra.ClientID("..."),
hydra.ClientSecret("..."),
hydra.ClusterURL("..."),
)
if err != nil {
panic(err)
}
gh.Init(hc)
// Use the middleware
router := gin.Default()
router.GET("/", gh.ScopesRequired("scope1", "scope2"), handler)
router.Run()
}
```