Generic OAuth2 plugin for Discourse