In OAuth, the initial authorization request has a state
parameter. Apparently it's there for security reasons, but I don't really understand against what it protects... For instance, on GitHub the description of this parameter is:
An unguessable random string. It is used to protect against cross-site request forgery attacks.
From what I can see, the state from the authorization request is just passed as a parameter to the redirect URL like this:
http://<redirect_url>?code=17b1a8df59ddd92c5c3b&state=a4e0761e-8c21-4e20-819d-5a4daeab4ea9
Could someone explain the exact purpose of this parameter?