{
"upstream_commit": "3516c776a1fcbd83d234efc007e3a49807d6ed91",
"php": "8.4.27",
"results": [
{
"case": "issuer-missing-client",
"method": "POST",
"path": "/oauth/device/code",
"status": 400,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": "60",
"X-RateLimit-Remaining": "59"
},
"body": {
"error": "invalid_request",
"error_description": "The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed.",
"hint": "Check the `client_id` parameter"
}
},
{
"case": "issuer-unknown-client",
"method": "POST",
"path": "/oauth/device/code",
"status": 401,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": "60",
"X-RateLimit-Remaining": "58"
},
"body": {
"error": "invalid_client",
"error_description": "Client authentication failed"
}
},
{
"case": "issuer-unauthorized-client",
"method": "POST",
"path": "/oauth/device/code",
"status": 400,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": "60",
"X-RateLimit-Remaining": "57"
},
"body": {
"error": "unauthorized_client",
"error_description": "The authenticated client is not authorized to use this authorization grant type."
}
},
{
"case": "issuer-valid",
"method": "POST",
"path": "/oauth/device/code",
"status": 200,
"headers": {
"Content-Type": "application/json; charset=UTF-8",
"Cache-Control": "no-store, private",
"Pragma": "no-cache",
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": "60",
"X-RateLimit-Remaining": "56"
},
"body": {
"verification_uri": "/oauth/device",
"expires_in": 599,
"verification_uri_complete": "/oauth/device?user_code=",
"interval": 5,
"device_code": "",
"user_code": "",
"device_code_length": 80,
"user_code_length": 8,
"device_code_hex": true,
"user_code_consonants": true
}
},
{
"case": "poll-missing-device-code",
"method": "POST",
"path": "/oauth/token",
"status": 400,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": "60",
"X-RateLimit-Remaining": "55"
},
"body": {
"error": "invalid_request",
"error_description": "The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed.",
"hint": "Check the `device_code` parameter"
}
},
{
"case": "poll-unknown-device-code",
"method": "POST",
"path": "/oauth/token",
"status": 400,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": "60",
"X-RateLimit-Remaining": "54"
},
"body": {
"error": "invalid_grant",
"error_description": "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.",
"hint": ""
}
},
{
"case": "poll-pending",
"method": "POST",
"path": "/oauth/token",
"status": 400,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": "60",
"X-RateLimit-Remaining": "53"
},
"body": {
"error": "authorization_pending",
"error_description": "The authorization request is still pending as the end user hasn't yet completed the user interaction steps. The client SHOULD repeat the Access Token Request to the token endpoint",
"hint": ""
}
},
{
"case": "poll-too-soon",
"method": "POST",
"path": "/oauth/token",
"status": 400,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": "60",
"X-RateLimit-Remaining": "52"
},
"body": {
"error": "slow_down",
"error_description": "The authorization request is still pending and polling should continue, but the interval MUST be increased by 5 seconds for this and all subsequent requests.",
"hint": ""
}
},
{
"case": "GET /oauth/device",
"method": "GET",
"path": "/oauth/device",
"status": 500,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": null,
"X-RateLimit-Remaining": null
},
"body": {
"message": "Server Error"
}
},
{
"case": "GET /oauth/device/authorize",
"method": "GET",
"path": "/oauth/device/authorize",
"status": 401,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": null,
"X-RateLimit-Remaining": null
},
"body": {
"message": "Unauthenticated."
}
},
{
"case": "POST /oauth/device/authorize",
"method": "POST",
"path": "/oauth/device/authorize",
"status": 419,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": null,
"X-RateLimit-Remaining": null
},
"body": {
"message": "CSRF token mismatch."
}
},
{
"case": "DELETE /oauth/device/authorize",
"method": "DELETE",
"path": "/oauth/device/authorize",
"status": 419,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": null,
"X-RateLimit-Remaining": null
},
"body": {
"message": "CSRF token mismatch."
}
},
{
"case": "POST /oauth/authorize",
"method": "POST",
"path": "/oauth/authorize",
"status": 419,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": null,
"X-RateLimit-Remaining": null
},
"body": {
"message": "CSRF token mismatch."
}
},
{
"case": "DELETE /oauth/authorize",
"method": "DELETE",
"path": "/oauth/authorize",
"status": 419,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": null,
"X-RateLimit-Remaining": null
},
"body": {
"message": "CSRF token mismatch."
}
},
{
"case": "POST /oauth/token/refresh",
"method": "POST",
"path": "/oauth/token/refresh",
"status": 419,
"headers": {
"Content-Type": "application/json",
"Cache-Control": "no-cache, private",
"Pragma": null,
"WWW-Authenticate": null,
"Location": null,
"X-RateLimit-Limit": null,
"X-RateLimit-Remaining": null
},
"body": {
"message": "CSRF token mismatch."
}
}
],
"composer_lock_sha256": "b1376d21c517d700bc48b196e9dc2b30257caf25774e315ff9d1bf8a2411241a"
}