An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

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()
}
```