mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-06 01:55:58 +08:00
65157ede23
* add sdk svr to docker script * panic handle * fix build from dockerfile on docker-compose * Update deploy.Dockerfile * log and scripts optimization * ci: ignore files created by docker-compose (#19) * feat: optimise get server ip (#20) * feat: optimise get server ip * feat: test ServerIP * fix issue#15 (#18) Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com> * Modify bug for getting lastest seq * Reduce the MongoDB version to adapt to a few machine (#22) * Feature/optimise jwt token (#24) * Pr branch (#25) * fix update jwt-token version to avoid attackers to bypass intended access restrictions in situations with []string{} for m["aud"] * del accountAddr * Create codeql-analysis.yml * del unuse filed * fix update jwt-token version to avoid attackers to bypass intended access restrictions in situations with []string{} for m["aud"] Co-authored-by: Gordon <1432970085@qq.com> Co-authored-by: Yaxian <yaxian.gu@gmail.com> Co-authored-by: Zzr <bhg889@163.com> Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com> Co-authored-by: brennanli <brennanli@tencent.com>
82 lines
2.3 KiB
Go
82 lines
2.3 KiB
Go
package utils
|
|
|
|
import (
|
|
"Open_IM/src/common/config"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_BuildClaims(t *testing.T) {
|
|
uid := "1"
|
|
platform := "PC"
|
|
ttl := int64(-1)
|
|
claim := BuildClaims(uid, platform, ttl)
|
|
now := time.Now().Unix()
|
|
|
|
assert.Equal(t, claim.UID, uid, "uid should equal")
|
|
assert.Equal(t, claim.Platform, platform, "platform should equal")
|
|
assert.Equal(t, claim.RegisteredClaims.ExpiresAt, int64(-1), "StandardClaims.ExpiresAt should be equal")
|
|
// time difference within 1s
|
|
assert.Equal(t, claim.RegisteredClaims.IssuedAt, now, "StandardClaims.IssuedAt should be equal")
|
|
assert.Equal(t, claim.RegisteredClaims.NotBefore, now, "StandardClaims.NotBefore should be equal")
|
|
|
|
ttl = int64(60)
|
|
now = time.Now().Unix()
|
|
claim = BuildClaims(uid, platform, ttl)
|
|
// time difference within 1s
|
|
assert.Equal(t, claim.RegisteredClaims.ExpiresAt, int64(60)+now, "StandardClaims.ExpiresAt should be equal")
|
|
assert.Equal(t, claim.RegisteredClaims.IssuedAt, now, "StandardClaims.IssuedAt should be equal")
|
|
assert.Equal(t, claim.RegisteredClaims.NotBefore, now, "StandardClaims.NotBefore should be equal")
|
|
}
|
|
|
|
func Test_CreateToken(t *testing.T) {
|
|
uid := "1"
|
|
platform := int32(1)
|
|
now := time.Now().Unix()
|
|
|
|
tokenString, expiresAt, err := CreateToken(uid, platform)
|
|
|
|
assert.NotEmpty(t, tokenString)
|
|
assert.Equal(t, expiresAt, 604800+now)
|
|
assert.Nil(t, err)
|
|
}
|
|
|
|
func Test_VerifyToken(t *testing.T) {
|
|
uid := "1"
|
|
platform := int32(1)
|
|
tokenString, _, _ := CreateToken(uid, platform)
|
|
result := VerifyToken(tokenString, uid)
|
|
assert.True(t, result)
|
|
result = VerifyToken(tokenString, "2")
|
|
assert.False(t, result)
|
|
}
|
|
|
|
func Test_ParseRedisInterfaceToken(t *testing.T) {
|
|
uid := "1"
|
|
platform := int32(1)
|
|
tokenString, _, _ := CreateToken(uid, platform)
|
|
|
|
claims, err := ParseRedisInterfaceToken([]uint8(tokenString))
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, claims.UID, uid)
|
|
|
|
// timeout
|
|
config.Config.TokenPolicy.AccessExpire = -80
|
|
tokenString, _, _ = CreateToken(uid, platform)
|
|
claims, err = ParseRedisInterfaceToken([]uint8(tokenString))
|
|
assert.Equal(t, err, TokenExpired)
|
|
assert.Nil(t, claims)
|
|
}
|
|
|
|
func Test_ParseToken(t *testing.T) {
|
|
uid := "1"
|
|
platform := int32(1)
|
|
tokenString, _, _ := CreateToken(uid, platform)
|
|
claims, err := ParseToken(tokenString)
|
|
if err == nil {
|
|
assert.Equal(t, claims.UID, uid)
|
|
}
|
|
}
|