auth fixture provides tools for creating test tokens, testing expiration, and validating scope enforcement.
Why Test Authentication?
Authentication tests verify that your server:- Rejects requests without valid tokens
- Accepts requests with valid tokens
- Enforces token expiration
- Validates token signatures
- Respects scope-based permissions
Creating Test Tokens
Theauth fixture generates real JWT tokens using RS256 signing:
Token Options
Custom Claims
Add any custom claims your server needs:Pre-built Test Users
Theauth fixture includes pre-configured test users for common scenarios:
User Definitions
Testing Token Expiration
Expired Tokens
Short-Lived Tokens
Testing Invalid Tokens
Invalid Signature
Malformed Token
Testing Scope Enforcement
Scope-Based Access Control
Testing Multiple Scopes
JWKS Integration
For servers that verify tokens against JWKS endpoints:Testing Auth Modes
Public Mode (No Auth)
Local Mode (Auth Required)
Real-World Examples
Testing User Isolation
Testing Admin Operations
Best Practices
Do:- Test both positive (valid token) and negative (invalid/expired) cases
- Test scope enforcement for all protected operations
- Use pre-built test users for common scenarios
- Clean up created clients after multi-user tests
- Hard-code tokens in tests (always use
auth.createToken()) - Skip expiration testing
- Assume scopes are enforced without testing
- Forget to test anonymous access for public endpoints
MockOAuthServer
For integration testing of OAuth flows, useMockOAuthServer from @frontmcp/testing. It provides a fully functional OAuth 2.1 server with PKCE support.
Basic Usage
MockOAuthServerOptions
MockTestUser Interface
MockOAuthServerInfo Interface
Available Endpoints
Supported Grant Types
authorization_code- Standard OAuth flow with PKCErefresh_token- Refresh token rotationanonymous- Issue anonymous tokens for testing