I’m in the process of setting up various authentication methods on a project I’m working on, and the common OAuth 2.0 framework that Google and Facebook use seems pretty awesome. Reading the example Facebook gave though, I stumbled across something that seemed strange to me.
If you look at the bottom of that facebook page, you can see an example in PHP. In their process, they first set a random string to $_SESSION[‘state’], then redirect the user to the facebook authentication page, which then sends the user back to the original page, where they compare the state string to what’s supposedly stored in the session variable. Maybe I’m missing something here, but don’t you lose all session data if the user leaves your site? How does this work? How is your session data maintained even though you leave the site?
The session data stays until you close the browser or logout from your app. The session state could be getting saved on the server or on the browser in a cookie. Either way, the session data is available to you once facebook redirects back to your site.