Skip to content

Commit 17875e9

Browse files
authored
Verify nbf (livekit#1345)
* return jwt.Claims when Verify token * fix test
1 parent a86ff79 commit 17875e9

File tree

5 files changed

+16
-13
lines changed

5 files changed

+16
-13
lines changed

auth/accesstoken_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ func TestAccessToken(t *testing.T) {
218218

219219
v, err := ParseAPIToken(value)
220220
require.NoError(t, err)
221-
claims, err := v.Verify(secret)
221+
_, claims, err := v.Verify(secret)
222222
require.NoError(t, err)
223223

224224
rc := (*livekit.RoomConfiguration)(claims.RoomConfig)

auth/verifier.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,23 +58,23 @@ func (v *APIKeyTokenVerifier) Identity() string {
5858
return v.identity
5959
}
6060

61-
func (v *APIKeyTokenVerifier) Verify(key interface{}) (*ClaimGrants, error) {
61+
func (v *APIKeyTokenVerifier) Verify(key interface{}) (*jwt.Claims, *ClaimGrants, error) {
6262
if key == nil || key == "" {
63-
return nil, ErrKeysMissing
63+
return nil, nil, ErrKeysMissing
6464
}
6565
if s, ok := key.(string); ok {
6666
key = []byte(s)
6767
}
6868
out := jwt.Claims{}
6969
claims := ClaimGrants{}
7070
if err := v.token.Claims(key, &out, &claims); err != nil {
71-
return nil, err
71+
return nil, nil, err
7272
}
7373
if err := out.Validate(jwt.Expected{Issuer: v.apiKey, Time: time.Now()}); err != nil {
74-
return nil, err
74+
return nil, nil, err
7575
}
7676

7777
// copy over identity
7878
claims.Identity = v.identity
79-
return &claims, nil
79+
return &out, &claims, nil
8080
}

auth/verifier_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,18 @@ func TestVerifier(t *testing.T) {
3333
require.NoError(t, err)
3434

3535
require.Equal(t, apiKey, v.APIKey())
36-
_, err = v.Verify("")
36+
_, _, err = v.Verify("")
3737
require.Error(t, err)
3838

39-
_, err = v.Verify("anothersecret")
39+
_, _, err = v.Verify("anothersecret")
4040
require.Error(t, err)
4141
})
4242

4343
t.Run("key has expired", func(t *testing.T) {
4444
v, err := auth.ParseAPIToken(accessToken)
4545
require.NoError(t, err)
4646

47-
_, err = v.Verify(secret)
47+
_, _, err = v.Verify(secret)
4848
require.Error(t, err)
4949
})
5050

@@ -62,7 +62,7 @@ func TestVerifier(t *testing.T) {
6262
require.Equal(t, apiKey, v.APIKey())
6363
require.Equal(t, "me", v.Identity())
6464

65-
decoded, err := v.Verify(secret)
65+
_, decoded, err := v.Verify(secret)
6666
require.NoError(t, err)
6767
require.Equal(t, &claim, decoded.Video)
6868
})
@@ -88,7 +88,7 @@ func TestVerifier(t *testing.T) {
8888
v, err := auth.ParseAPIToken(authToken)
8989
require.NoError(t, err)
9090

91-
decoded, err := v.Verify(secret)
91+
_, decoded, err := v.Verify(secret)
9292
require.NoError(t, err)
9393

9494
require.EqualValues(t, string(md), decoded.Metadata)
@@ -108,7 +108,7 @@ func TestVerifier(t *testing.T) {
108108

109109
v, err := auth.ParseAPIToken(token)
110110
require.NoError(t, err)
111-
decoded, err := v.Verify(secret)
111+
_, decoded, err := v.Verify(secret)
112112
require.NoError(t, err)
113113

114114
require.Nil(t, decoded.Video.CanSubscribe)

livekit/types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ func (s NodeID) String() string { return string(s) }
5959
func (s JobID) String() string { return string(s) }
6060
func (s DispatchID) String() string { return string(s) }
6161
func (s AgentName) String() string { return string(s) }
62+
func (s ParticipantKey) String() string {
63+
return fmt.Sprintf("%s_%s_%s", s.ProjectID, s.RoomName, s.Identity)
64+
}
6265

6366
type stringTypes interface {
6467
ParticipantID | RoomID | TrackID | ParticipantIdentity | ParticipantName | RoomName | ConnectionID | NodeID

webhook/verifier.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func Receive(r *http.Request, provider auth.KeyProvider) ([]byte, error) {
5151
return nil, ErrSecretNotFound
5252
}
5353

54-
claims, err := v.Verify(secret)
54+
_, claims, err := v.Verify(secret)
5555
if err != nil {
5656
return nil, err
5757
}

0 commit comments

Comments
 (0)