package auth import ( "crypto/sha256" "encoding/base64" "encoding/json" "fmt" "log" "net/http" "testing" "time" ) func TestCase(t *testing.T) { info := &UserInfo{ UserId: 1, } log.Println(info) data, _ := json.Marshal(info) log.Println(string(data)) a := `{"user_id":0,"guest_id":1,"exp":0, "debug": { "exp": 123212, "is_cache": 1}}` err := json.Unmarshal([]byte(a), info) log.Println(err) log.Printf("%#v %v", info, info.Debug) // now := time.Now().UTC().Unix() v, err := GenerateBaseJwtTokenUint64(DefaultDebugJwtSecret, time.Now().UTC().Unix(), 3600, info.Debug) log.Println(v, err) d, err := ParseDebugJwtTokenWithHeader("Debug-Token", &http.Request{ Header: http.Header{ "Debug-Token": []string{v}, }, }) log.Println(d, err) } // TestGenJwt 测试jwt序列化 func TestGenJwt(t *testing.T) { now := time.Now().UTC().Unix() secret := "fusen123" a, err := GenerateJwtToken(&secret, 3600, now, 123, 1234) if err != nil { t.Error(err) } // log.Println(a) claims, err := getJwtClaims(a, &secret) if err != nil { t.Error(err) } userinfo, err := GetUserInfoFormMapClaims(claims) if err != nil { t.Error(err) } if userinfo.UserId != 123 || userinfo.GuestId != 1234 { t.Error(userinfo) } // log.Println(claims) } func TestGenBackendJwt(t *testing.T) { now := time.Now().UTC().Unix() secret := "fusen_backend_2023" a, err := GenerateBackendJwtToken(&secret, 3600*24*7, now, 1, 1) if err != nil { t.Error(err) } log.Println(a) claims, err := getJwtClaims(a, &secret) if err != nil { t.Error(err) } userinfo, err := GetBackendUserInfoFormMapClaims(claims) if err != nil { t.Error(err) } if userinfo.UserId != 1 || userinfo.DepartmentId != 1 { t.Error(userinfo) } // log.Println(claims) } func TestCase1(t *testing.T) { a := sha256.New() a.Write([]byte("fusen_backend_3021")) base64.RawURLEncoding.EncodeToString(a.Sum(nil)) as := fmt.Sprintf("%x", a.Sum(nil)) log.Println(as, len(as), base64.RawURLEncoding.EncodeToString(a.Sum(nil))) // b := sha256.New().Sum([]byte("fusen_backend_2022")) // bs := fmt.Sprintf("%x", b) // log.Println(bs) // log.Println(as == bs) // log.Println(basic.CBCEncrypt("sdfsdfsadsasdasadas", "1232132131232132")) // log.Println(basic.CBCDecrypt("8pq8ud33FfFZN2jUmBaNFfYbOeyrK1C/xVEtnbV2HfeG9KCGZfEcF6qrRwOHzWvT", "1232132131232132")) } func TestCheckValueRange(t *testing.T) { v := 1 rv1 := []int{1, 3, 4} if !CheckValueRange[int](v, rv1...) { t.Error("1 in [1 3 4], but is false") } v = 2 if CheckValueRange(v, rv1...) { t.Error("2 not in [1 3 4], but is true") } vstr := "funsen123" rvstr := []string{"funsun123", "funsen123", "funsen23"} if !CheckValueRange(vstr, rvstr...) { t.Error("vstr in rvstr, but is false") } vstr = "funsen1234" if CheckValueRange(vstr, rvstr...) { t.Error("vstr not in rvstr, but is true") } }