Warning for Moodle 3.3 and later: starting from Moodle 3.3, Oauth2 should be implemented in core. I suppose it likely will be a system that requires creation of individual plugins for each authentication providers. I won't be supporting this plugin starting the release of Oauth2 implementation in Moodle, so starting 3.3 (https://docs.moodle.org/dev/Better_Office_Integrations_3.3#Core_API_for_managing_Authorized_OAuth_Applications) I recommend to use new plugins using this new Moodle core system. They are likely to quickly be implemented by someone else and publish in Moodle.org plugin repository. There will probably be a new Oauth2 categories in the Moodle plugin repository.
This plugin adds the "Sign-in with Google / Facebook / Github / Linkedin / Windows Live" buttons on the login page. The first time the user login with a social account, a new Moodle account is created.
- add the plugin into /auth/googleoauth2/
- Install composer.phar: curl -sS https://getcomposer.org/installer | php
- Install the 'vendor' folder: php composer.phar install
- apply the changes listed in VENDOR CHANGES.md (if any)
- run the Moodle upgrade
- in the Moodle administration, enable the plugin (Admin block > Plugins > Authentication)
- in the plugin settings, follow the displayed instructions. or just install the plugin from Moodle.org repository plugin page
If you have any issues you can follow the Git chapter of my free mini-course how to install a Moodle plugin. It is using the Oauth2 plugin as example.
Implement your own provider (for devs)
- add your third party provider for Oauth2 client as explain in https://github.com/thephpleague/oauth2-client
- create [PLUGIN_HOME]/classes/provider/newprovidername.php and [PLUGIN_HOME]/newprovidername_redirect.php. Then add the lang strings in /lang/en/auth_googleoauth2.php.
Composer (for devs)
Continuous integration, tracker...
- The PHP League oauth2 client
- Pixelfear dropbox support
- Depotwarehouse battle.net support
- illuminate contracts
- Symfony EventDispatcher