@@ -1496,6 +1496,73 @@ describe('tokens.authenticateRequest(options)', () => {
14961496 isAuthenticated : false ,
14971497 } ) ;
14981498 } ) ;
1499+
1500+ test ( 'rejects OAuth JWT token when acceptsToken is session_token' , async ( ) => {
1501+ const request = mockRequest ( { authorization : `Bearer ${ mockTokens . oauth_token } ` } ) ;
1502+ const result = await authenticateRequest ( request , mockOptions ( { acceptsToken : 'session_token' } ) ) ;
1503+
1504+ expect ( result ) . toBeSignedOut ( {
1505+ reason : AuthErrorReason . TokenTypeMismatch ,
1506+ message : '' ,
1507+ tokenType : 'session_token' ,
1508+ isAuthenticated : false ,
1509+ } ) ;
1510+ expect ( result . toAuth ( ) ) . toBeSignedOutToAuth ( ) ;
1511+ } ) ;
1512+
1513+ test ( 'rejects M2M token when acceptsToken is session_token' , async ( ) => {
1514+ const request = mockRequest ( { authorization : `Bearer ${ mockTokens . m2m_token } ` } ) ;
1515+ const result = await authenticateRequest ( request , mockOptions ( { acceptsToken : 'session_token' } ) ) ;
1516+
1517+ expect ( result ) . toBeSignedOut ( {
1518+ reason : AuthErrorReason . TokenTypeMismatch ,
1519+ message : '' ,
1520+ tokenType : 'session_token' ,
1521+ isAuthenticated : false ,
1522+ } ) ;
1523+ expect ( result . toAuth ( ) ) . toBeSignedOutToAuth ( ) ;
1524+ } ) ;
1525+
1526+ test ( 'rejects API key when acceptsToken is session_token' , async ( ) => {
1527+ const request = mockRequest ( { authorization : `Bearer ${ mockTokens . api_key } ` } ) ;
1528+ const result = await authenticateRequest ( request , mockOptions ( { acceptsToken : 'session_token' } ) ) ;
1529+
1530+ expect ( result ) . toBeSignedOut ( {
1531+ reason : AuthErrorReason . TokenTypeMismatch ,
1532+ message : '' ,
1533+ tokenType : 'session_token' ,
1534+ isAuthenticated : false ,
1535+ } ) ;
1536+ expect ( result . toAuth ( ) ) . toBeSignedOutToAuth ( ) ;
1537+ } ) ;
1538+
1539+ test ( 'accepts valid session token when acceptsToken is session_token' , async ( ) => {
1540+ server . use (
1541+ http . get ( 'https://api.clerk.test/v1/jwks' , ( ) => {
1542+ return HttpResponse . json ( mockJwks ) ;
1543+ } ) ,
1544+ ) ;
1545+
1546+ const request = mockRequest ( { authorization : `Bearer ${ mockJwt } ` } ) ;
1547+ const result = await authenticateRequest ( request , mockOptions ( { acceptsToken : 'session_token' } ) ) ;
1548+
1549+ expect ( result ) . toBeSignedIn ( ) ;
1550+ expect ( result . tokenType ) . toBe ( 'session_token' ) ;
1551+ } ) ;
1552+
1553+ test ( 'accepts OAuth JWT when acceptsToken is "any"' , async ( ) => {
1554+ server . use (
1555+ http . post ( mockMachineAuthResponses . oauth_token . endpoint , ( ) => {
1556+ return HttpResponse . json ( mockVerificationResults . oauth_token ) ;
1557+ } ) ,
1558+ ) ;
1559+
1560+ const request = mockRequest ( { authorization : `Bearer ${ mockTokens . oauth_token } ` } ) ;
1561+ const result = await authenticateRequest ( request , mockOptions ( { acceptsToken : 'any' } ) ) ;
1562+
1563+ expect ( result ) . toBeMachineAuthenticated ( ) ;
1564+ expect ( result . tokenType ) . toBe ( 'oauth_token' ) ;
1565+ } ) ;
14991566 } ) ;
15001567
15011568 describe ( 'Array of Accepted Token Types' , ( ) => {
0 commit comments