Add OAuth 2.0 authorization code workflow