73 lines
1.9 KiB
Go
73 lines
1.9 KiB
Go
package api
|
|
|
|
import (
|
|
_ "embed"
|
|
|
|
"122.51.31.227/go-course/go18/devcloud/mcenter/apps/token"
|
|
"github.com/infraboard/mcube/v2/ioc"
|
|
"github.com/infraboard/mcube/v2/ioc/config/gorestful"
|
|
|
|
restfulspec "github.com/emicklei/go-restful-openapi/v2"
|
|
)
|
|
|
|
func init() {
|
|
ioc.Api().Registry(&TokenRestulApiHandler{})
|
|
}
|
|
|
|
type TokenRestulApiHandler struct {
|
|
ioc.ObjectImpl
|
|
|
|
// 依赖控制器
|
|
svc token.Service
|
|
}
|
|
|
|
func (h *TokenRestulApiHandler) Name() string {
|
|
return token.APP_NAME
|
|
}
|
|
|
|
//go:embed docs/login.md
|
|
var loginApiDocNotes string
|
|
|
|
func (h *TokenRestulApiHandler) Init() error {
|
|
h.svc = token.GetService()
|
|
|
|
tags := []string{"用户登录"}
|
|
ws := gorestful.ObjectRouter(h)
|
|
ws.Route(ws.POST("").To(h.Login).
|
|
Doc("颁发令牌(登录)").
|
|
Notes(loginApiDocNotes).
|
|
Metadata(restfulspec.KeyOpenAPITags, tags).
|
|
Reads(token.IssueTokenRequest{}).
|
|
Writes(token.Token{}).
|
|
Returns(200, "OK", token.Token{}))
|
|
|
|
ws.Route(ws.POST("/validate").To(h.ValiateToken).
|
|
Doc("校验令牌").
|
|
// Metadata(permission.Auth(true)).
|
|
// Metadata(permission.Permission(false)).
|
|
Metadata(restfulspec.KeyOpenAPITags, tags).
|
|
Reads(token.ValiateTokenRequest{}).
|
|
Writes(token.Token{}).
|
|
Returns(200, "OK", token.Token{}))
|
|
|
|
// ws.Route(ws.POST("/change_namespace").To(h.ChangeNamespce).
|
|
// Doc("切换令牌访问空间").
|
|
// // Metadata(permission.Auth(true)).
|
|
// // Metadata(permission.Permission(false)).
|
|
// Metadata(restfulspec.KeyOpenAPITags, tags).
|
|
// Reads(token.ChangeNamespceRequest{}).
|
|
// Writes(token.Token{}).
|
|
// Returns(200, "OK", token.Token{}))
|
|
|
|
ws.Route(ws.DELETE("").To(h.Logout).
|
|
Doc("撤销令牌(退出)").
|
|
// Metadata(permission.Auth(true)).
|
|
// Metadata(permission.Permission(false)).
|
|
Metadata(restfulspec.KeyOpenAPITags, tags).
|
|
Reads(token.IssueTokenRequest{}).
|
|
Writes(token.Token{}).
|
|
Returns(200, "OK", token.Token{}).
|
|
Returns(404, "Not Found", nil))
|
|
return nil
|
|
}
|