mirror of
https://github.com/weloe/token-go.git
synced 2025-09-27 03:46:01 +08:00
feat: update CreateTempToken,add CreateTempTokenByStyle
This commit is contained in:
@@ -65,7 +65,8 @@ type IEnforcer interface {
|
|||||||
CloseSafe(token string, service string) error
|
CloseSafe(token string, service string) error
|
||||||
|
|
||||||
// Temp token api
|
// 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
|
GetTempTokenTimeout(service string, tempToken string) int64
|
||||||
ParseTempToken(service string, tempToken string) string
|
ParseTempToken(service string, tempToken string) string
|
||||||
DeleteTempToken(service string, tempToken string) error
|
DeleteTempToken(service string, tempToken string) error
|
||||||
|
@@ -208,7 +208,7 @@ func (e *Enforcer) CloseSafe(token string, service string) error {
|
|||||||
return nil
|
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)
|
token, err := e.generateFunc.Exec(style)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
@@ -220,6 +220,17 @@ func (e *Enforcer) CreateTempToken(style string, service string, value string, t
|
|||||||
return token, nil
|
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 {
|
func (e *Enforcer) GetTempTokenTimeout(service string, tempToken string) int64 {
|
||||||
if tempToken == "" {
|
if tempToken == "" {
|
||||||
return constant.NotValueExpire
|
return constant.NotValueExpire
|
||||||
|
@@ -2,16 +2,20 @@ package token_go
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/weloe/token-go/model"
|
"github.com/weloe/token-go/model"
|
||||||
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestEnforcer_TempToken(t *testing.T) {
|
func TestEnforcer_TempToken(t *testing.T) {
|
||||||
enforcer, _ := NewTestEnforcer(t)
|
enforcer, _ := NewTestEnforcer(t)
|
||||||
service := "code"
|
service := "code"
|
||||||
tempToken, err := enforcer.CreateTempToken("uuid", service, "1234", -1)
|
tempToken, err := enforcer.CreateTempToken("tempToken", service, "1234", -1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("CreateTempToken() failed: %v", err)
|
t.Fatalf("CreateTempToken() failed: %v", err)
|
||||||
}
|
}
|
||||||
|
if !reflect.DeepEqual(tempToken, "tempToken") {
|
||||||
|
t.Fatalf("token error, want is %v", "1234")
|
||||||
|
}
|
||||||
timeout := enforcer.GetTempTokenTimeout(service, tempToken)
|
timeout := enforcer.GetTempTokenTimeout(service, tempToken)
|
||||||
if timeout != -1 {
|
if timeout != -1 {
|
||||||
t.Errorf("GetTempTokenTimeout() failed, unexpected timeout: %v", timeout)
|
t.Errorf("GetTempTokenTimeout() failed, unexpected timeout: %v", timeout)
|
||||||
@@ -33,6 +37,16 @@ func TestEnforcer_TempToken(t *testing.T) {
|
|||||||
if codeValue != "" {
|
if codeValue != "" {
|
||||||
t.Errorf("ParseTempToken() failed, unexpected codeValue: %v", 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) {
|
func TestEnforcer_ConfirmQRCode(t *testing.T) {
|
||||||
|
Reference in New Issue
Block a user