gin-server/README.md

2.0 KiB

Gin OAuth 2.0 Server

Using Gin framework implementation OAuth 2.0 services

License ReportCard GoDoc

Quick Start

Download and install

$ go get -u github.com/go-oauth2/gin-server

Create file server.go

package main

import (
	"net/http"

	"github.com/gin-gonic/gin"
	"github.com/go-oauth2/gin-server"
	"gopkg.in/oauth2.v3/manage"
	"gopkg.in/oauth2.v3/store"
)

func main() {
	manager := manage.NewDefaultManager()
	manager.MustTokenStorage(store.NewMemoryTokenStore())
	manager.MapClientStorage(store.NewTestClientStore())

	// Initialize the oauth2 service
	server.InitServer(manager)
	server.SetAllowGetAccessRequest(true)

	g := gin.Default()
	g.GET("/token", server.HandleTokenRequest)
	api := g.Group("/api")
	{
		api.Use(server.TokenAuth(func(c *gin.Context) string {
			return c.Query("access_token")
		}))
		api.GET("/test", func(c *gin.Context) {
			c.String(http.StatusOK, "ok")
		})
	}

	g.Run(":9096")
}

Build and run

$ go build server.go
$ ./server

Open in your web browser

The token information

http://localhost:9096/token?grant_type=client_credentials&client_id=1&client_secret=11&scope=read
{
    "access_token": "ZF1M7NKDNWUUX2TCDIMZZG",
    "expires_in": 7200,
    "scope": "read",
    "token_type": "Bearer"
}

The authentication token

http://localhost:9096/api/test?access_token=ZF1M7NKDNWUUX2TCDIMZZG

MIT License

Copyright (c) 2016 Lyric