Exchanging with an OAuth2 backend to retrieve tokens, and storing retrieved credentials in the session.