diff --git a/constant/token_style.go b/constant/token_style.go index ee93287..6d40e71 100644 --- a/constant/token_style.go +++ b/constant/token_style.go @@ -1,5 +1,6 @@ package constant +// tokenStyle constant const ( UUID = "uuid" SimpleUUID = "uuid-simple" diff --git a/enforcer.go b/enforcer.go index 23ffbaa..c6d2f37 100644 --- a/enforcer.go +++ b/enforcer.go @@ -445,6 +445,12 @@ func (e *Enforcer) GetRequestToken(ctx ctx.Context) string { return tokenValue } +// AddTokenGenerateFun add token generate strategy +func (e *Enforcer) AddTokenGenerateFun(tokenStyle string, f model.GenerateFunc) error { + e.generateFunc.AddFunc(tokenStyle, f) + return nil +} + func (e *Enforcer) GetSession(id string) *model.Session { if v := e.adapter.Get(e.spliceSessionKey(id)); v != nil { session := v.(*model.Session) diff --git a/enforcer_interface.go b/enforcer_interface.go index 0babf42..3392bc1 100644 --- a/enforcer_interface.go +++ b/enforcer_interface.go @@ -23,6 +23,7 @@ type IEnforcer interface { Kickout(id string, device string) error GetRequestToken(ctx ctx.Context) string + AddTokenGenerateFun(tokenStyle string, f model.GenerateFunc) error CheckLogin(ctx ctx.Context) error