mirror of
https://github.com/1f349/mjwt.git
synced 2024-11-09 22:22:48 +00:00
37 lines
998 B
Go
37 lines
998 B
Go
package auth
|
|
|
|
import (
|
|
"github.com/1f349/mjwt"
|
|
"github.com/golang-jwt/jwt/v4"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestCreateTokenPair(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
ps := NewPermStorage()
|
|
ps.Set("mjwt:test")
|
|
ps.Set("mjwt:test2")
|
|
|
|
kStore := mjwt.NewKeyStore()
|
|
s, err := mjwt.NewIssuerWithKeyStore("mjwt.test", "key2", jwt.SigningMethodRS512, kStore)
|
|
assert.NoError(t, err)
|
|
|
|
accessToken, refreshToken, err := CreateTokenPair(s, "1", "test", "test2", nil, nil, ps)
|
|
assert.NoError(t, err)
|
|
|
|
_, b, err := mjwt.ExtractClaims[AccessTokenClaims](kStore, accessToken)
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "1", b.Subject)
|
|
assert.Equal(t, "test", b.ID)
|
|
assert.True(t, b.Claims.Perms.Has("mjwt:test"))
|
|
assert.True(t, b.Claims.Perms.Has("mjwt:test2"))
|
|
assert.False(t, b.Claims.Perms.Has("mjwt:test3"))
|
|
|
|
_, b2, err := mjwt.ExtractClaims[RefreshTokenClaims](kStore, refreshToken)
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "1", b2.Subject)
|
|
assert.Equal(t, "test2", b2.ID)
|
|
}
|