From 7b920a1a5994a998c896d58e6113532e1e37a27e Mon Sep 17 00:00:00 2001 From: weloe <1345895607@qq.com> Date: Sat, 28 Oct 2023 00:35:02 +0800 Subject: [PATCH] feat: update CreateTempToken,add CreateTempTokenByStyle --- enforcer_interface.go | 3 ++- enforcer_manager_api.go | 13 ++++++++++++- enforcer_manager_api_test.go | 16 +++++++++++++++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/enforcer_interface.go b/enforcer_interface.go index 242a134..f5a1fc3 100644 --- a/enforcer_interface.go +++ b/enforcer_interface.go @@ -65,7 +65,8 @@ type IEnforcer interface { CloseSafe(token string, service string) error // Temp token api - CreateTempToken(style string, service string, value string, timeout int64) (string, error) + CreateTempToken(token string, service string, value string, timeout int64) (string, error) + CreateTempTokenByStyle(style string, service string, value string, timeout int64) (string, error) GetTempTokenTimeout(service string, tempToken string) int64 ParseTempToken(service string, tempToken string) string DeleteTempToken(service string, tempToken string) error diff --git a/enforcer_manager_api.go b/enforcer_manager_api.go index d7c1ea9..be0209f 100644 --- a/enforcer_manager_api.go +++ b/enforcer_manager_api.go @@ -208,7 +208,7 @@ func (e *Enforcer) CloseSafe(token string, service string) error { return nil } -func (e *Enforcer) CreateTempToken(style string, service string, value string, timeout int64) (string, error) { +func (e *Enforcer) CreateTempTokenByStyle(style string, service string, value string, timeout int64) (string, error) { token, err := e.generateFunc.Exec(style) if err != nil { return "", err @@ -220,6 +220,17 @@ func (e *Enforcer) CreateTempToken(style string, service string, value string, t return token, nil } +func (e *Enforcer) CreateTempToken(token string, service string, value string, timeout int64) (string, error) { + if token == "" { + return "", fmt.Errorf("token must not be empty") + } + err := e.setTempToken(service, token, value, timeout) + if err != nil { + return "", err + } + return token, nil +} + func (e *Enforcer) GetTempTokenTimeout(service string, tempToken string) int64 { if tempToken == "" { return constant.NotValueExpire diff --git a/enforcer_manager_api_test.go b/enforcer_manager_api_test.go index 2a5c509..b853f4c 100644 --- a/enforcer_manager_api_test.go +++ b/enforcer_manager_api_test.go @@ -2,16 +2,20 @@ package token_go import ( "github.com/weloe/token-go/model" + "reflect" "testing" ) func TestEnforcer_TempToken(t *testing.T) { enforcer, _ := NewTestEnforcer(t) service := "code" - tempToken, err := enforcer.CreateTempToken("uuid", service, "1234", -1) + tempToken, err := enforcer.CreateTempToken("tempToken", service, "1234", -1) if err != nil { t.Fatalf("CreateTempToken() failed: %v", err) } + if !reflect.DeepEqual(tempToken, "tempToken") { + t.Fatalf("token error, want is %v", "1234") + } timeout := enforcer.GetTempTokenTimeout(service, tempToken) if timeout != -1 { t.Errorf("GetTempTokenTimeout() failed, unexpected timeout: %v", timeout) @@ -33,6 +37,16 @@ func TestEnforcer_TempToken(t *testing.T) { if codeValue != "" { t.Errorf("ParseTempToken() failed, unexpected codeValue: %v", codeValue) } + + // create token + tempToken, err = enforcer.CreateTempTokenByStyle("uuid", service, "1234", -1) + if err != nil { + t.Fatalf("CreateTempTokenByStyle() failed: %v", err) + } + // delete + if enforcer.DeleteTempToken(service, tempToken) != nil { + t.Fatalf("DeleteTempToken() failed: %v", err) + } } func TestEnforcer_ConfirmQRCode(t *testing.T) {