feat: update CreateTempToken,add CreateTempTokenByStyle

This commit is contained in:
weloe
2023-10-28 00:35:02 +08:00
parent 046128c502
commit 7b920a1a59
3 changed files with 29 additions and 3 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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) {