Skip to content

Commit

Permalink
update: [passport] Namespace change to Issuer, support for custom tok…
Browse files Browse the repository at this point in the history
…en expiration
  • Loading branch information
kainonly committed Sep 26, 2023
1 parent 6dbdf0b commit d1f9aab
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
14 changes: 7 additions & 7 deletions passport/passport.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import (
)

type Passport struct {
Namespace string
Key string
Issuer string
Key string
}

func New(options ...Option) *Passport {
Expand All @@ -21,9 +21,9 @@ func New(options ...Option) *Passport {

type Option func(x *Passport)

func SetNamespace(v string) Option {
func SetIssuer(v string) Option {
return func(x *Passport) {
x.Namespace = v
x.Issuer = v
}
}

Expand All @@ -38,14 +38,14 @@ type Claims struct {
jwt.RegisteredClaims
}

func (x *Passport) Create(userId string, jti string) (tokenString string, err error) {
func (x *Passport) Create(userId string, jti string, expire time.Duration) (tokenString string, err error) {
token := jwt.NewWithClaims(jwt.SigningMethodHS256, Claims{
UserId: userId,
RegisteredClaims: jwt.RegisteredClaims{
ExpiresAt: jwt.NewNumericDate(time.Now().Add(2 * time.Hour)),
ExpiresAt: jwt.NewNumericDate(time.Now().Add(expire)),
IssuedAt: jwt.NewNumericDate(time.Now()),
NotBefore: jwt.NewNumericDate(time.Now()),
Issuer: x.Namespace,
Issuer: x.Issuer,
ID: jti,
},
})
Expand Down
12 changes: 6 additions & 6 deletions passport/passport_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ var key1 = "hZXD^@K9%wydDC3Z@cyDvE%5bz9SP7gy"

func TestMain(m *testing.M) {
x1 = passport.New(
passport.SetNamespace("dev"),
passport.SetIssuer("dev"),
passport.SetKey(key1),
)
x2 = passport.New(
passport.SetNamespace("beta"),
passport.SetIssuer("beta"),
passport.SetKey("eK4qpn7yCBLo0u5mlAFFRCRsCmf2NQ76"),
)
os.Exit(m.Run())
Expand All @@ -35,10 +35,10 @@ var otherToken string

func TestCreate(t *testing.T) {
var err error
token, err = x1.Create(userId1, jti1)
token, err = x1.Create(userId1, jti1, time.Hour*2)
assert.NoError(t, err)
assert.NotEmpty(t, token)
otherToken, err = x2.Create(userId2, jti2)
otherToken, err = x2.Create(userId2, jti2, time.Hour*2)
assert.NoError(t, err)
assert.NotEmpty(t, otherToken)
}
Expand All @@ -50,13 +50,13 @@ func TestVerify(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, clamis1.ID, jti1)
assert.Equal(t, clamis1.UserId, userId1)
assert.Equal(t, clamis1.Issuer, x1.Namespace)
assert.Equal(t, clamis1.Issuer, x1.Issuer)
var clamis2 passport.Claims
clamis2, err = x2.Verify(otherToken)
assert.NoError(t, err)
assert.Equal(t, clamis2.ID, jti2)
assert.Equal(t, clamis2.UserId, userId2)
assert.Equal(t, clamis2.Issuer, x2.Namespace)
assert.Equal(t, clamis2.Issuer, x2.Issuer)

_, err = x1.Verify(otherToken)
assert.Error(t, err)
Expand Down

0 comments on commit d1f9aab

Please sign in to comment.