| Valid Token | Token with valid signature and expiration | Returns 200 OK, request proceeds |
| Missing Token | No Authorization header provided | Returns 401 Unauthorized |
| Invalid Token | Malformed token structure | Returns 403 Forbidden |
| Wrong Secret | Token signed with different secret | Returns 403 Forbidden, signature validation fails |
| Expired Token | Token with past expiration time | Returns 403 Forbidden |
| Valid Issuer | Token with matching issuer claim | Returns 200 OK |
| Invalid Issuer | Token with non-matching issuer | Returns 403 Forbidden |
| Missing Issuer | Token without issuer when required | Returns 403 Forbidden |
| GetClaims | Extract all claims from context | Returns map with all token claims |
| Subject | Extract subject claim | Returns “sub” claim value |
| Query Lookup | Token in query parameter | Returns 200 OK, extracts from query string |
| Cookie Lookup | Token in HTTP cookie | Returns 200 OK, extracts from cookie |
| Cookie Missing | No cookie when expected | Returns 401 Unauthorized |
| Not Before (Invalid) | Token with future “nbf” claim | Returns 403 Forbidden |
| Not Before (Valid) | Token with past “nbf” claim | Returns 200 OK |
| Valid Audience (String) | Token with matching audience string | Returns 200 OK |
| Valid Audience (Array) | Token with matching audience in array | Returns 200 OK |
| Invalid Audience | Token with non-matching audience | Returns 403 Forbidden |
| Missing Audience | Token without audience when required | Returns 403 Forbidden |
| GetClaims (No Claims) | Call GetClaims without JWT middleware | Returns nil |
| Subject (No Claims) | Call Subject without JWT middleware | Returns empty string |
| Subject (No Sub Claim) | Token without “sub” claim | Returns empty string |
| Invalid Scheme | Wrong authorization scheme (e.g., “Basic”) | Returns 403 Forbidden |
| Custom Error Handler | Custom error handling function | Calls custom handler with custom status |
| Custom Auth Scheme | Non-default scheme (e.g., “Token”) | Returns 200 OK with custom scheme |
| Malformed Parts | Token with wrong number of parts | Returns 403 Forbidden |
| Invalid Base64 Signature | Signature not properly base64 encoded | Returns 403 Forbidden |
| Invalid Base64 Payload | Payload not properly base64 encoded | Returns 403 Forbidden |
| Invalid JSON Payload | Payload is not valid JSON | Returns 403 Forbidden |
| Query Missing | No query parameter when expected | Returns 401 Unauthorized |
| Panic (No Secret) | Options without secret | Panics with error message |
| Panic (Invalid Lookup) | Invalid TokenLookup format | Panics with error message |