Add token type to JWT claims for access/refresh distinction
- Add TokenType enum and include in Claims struct - GenerateRefreshToken now creates tokens with TokenRefresh type - AuthRequired middleware rejects refresh tokens - AuthService.Refresh validates token type - Tests verify type validation
This commit is contained in:
@@ -380,3 +380,24 @@ func TestAuthService_RefreshWithInvalidToken(t *testing.T) {
|
||||
t.Fatal("expected error for invalid refresh token, got nil")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAuthService_RefreshWithAccessToken(t *testing.T) {
|
||||
svc := setupAuthService(t)
|
||||
ctx := context.Background()
|
||||
|
||||
_, err := svc.Register(ctx, "testuser", "testuser@example.com", "password123")
|
||||
if err != nil {
|
||||
t.Fatalf("Register = %v", err)
|
||||
}
|
||||
|
||||
pair, err := svc.Login(ctx, "testuser@example.com", "password123")
|
||||
if err != nil {
|
||||
t.Fatalf("Login = %v", err)
|
||||
}
|
||||
|
||||
// Attempt to use the access token as a refresh token
|
||||
_, err = svc.Refresh(ctx, pair.AccessToken)
|
||||
if err == nil {
|
||||
t.Fatal("expected error when using access token for refresh, got nil")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user