Add initial implementation of OAuth 2.0