A state parameter is an opaque, unguessable value generated for an OAuth authorization request. Bind it to that request and carry it through every request and response until the access-token exchange. section 7.4.1
It protects against authorization-endpoint CSRF and access-token hijacking. Without it, a malicious site can trigger authorization while a user is already logged in, receive an authorization code, and exchange it for an access token. section 7.4.1 section 10.3
Authorization request
An authorization URL can include `state=35ce` alongside `response_type`, `client_id`, and `redirect_uri`. The client carries the bound state value throughout the flow rather than treating the authorization code alone as sufficient protection. section 7.4.1
