OAuth 2.0 authorization flow. Description for each step below