2016-09-25 20:08:45 +08:00
|
|
|
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/models"
|
|
|
|
"gopkg.in/oauth2.v3/store"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
initOAuth2()
|
|
|
|
|
|
|
|
g := gin.Default()
|
|
|
|
|
|
|
|
g.GET("/authorize", server.HandleAuthorizeRequest)
|
2016-09-26 08:59:08 +08:00
|
|
|
g.GET("/token", server.HandleTokenRequest)
|
2016-09-25 20:08:45 +08:00
|
|
|
api := g.Group("/api")
|
|
|
|
{
|
|
|
|
api.Use(server.TokenAuth(tokenAuthHandle))
|
|
|
|
api.GET("/test", testHandle)
|
|
|
|
}
|
|
|
|
|
|
|
|
g.Run(":9096")
|
|
|
|
}
|
|
|
|
|
|
|
|
func initOAuth2() {
|
|
|
|
manager := manage.NewDefaultManager()
|
|
|
|
// token store
|
|
|
|
manager.MustTokenStorage(store.NewMemoryTokenStore())
|
|
|
|
// client store
|
|
|
|
manager.MapClientStorage(store.NewTestClientStore(&models.Client{
|
|
|
|
ID: "999999",
|
|
|
|
Secret: "999999",
|
|
|
|
}))
|
|
|
|
|
|
|
|
// Initialize the oauth2 service
|
|
|
|
server.InitServer(manager)
|
|
|
|
server.SetAllowGetAccessRequest(true)
|
|
|
|
}
|
|
|
|
|
|
|
|
func tokenAuthHandle(c *gin.Context) (token string) {
|
|
|
|
token = c.Query("access_token")
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func testHandle(c *gin.Context) {
|
2016-09-26 08:59:08 +08:00
|
|
|
ti, _ := c.Get("Token")
|
|
|
|
c.JSON(http.StatusOK, ti)
|
2016-09-25 20:08:45 +08:00
|
|
|
}
|