Support external authentication systems
Summary
The Authentication module should support 3rd-party authentication systems like Facebook.
Desired Behavior
The Authentication module should expose APIs to authenticate via 3rd-party systems based on the O-Auth 2 standard. It should also provide methods to manually implement new authentications systems via dependency injection.
Implementation Plan
- The Authentication module should be rewritten to support plugins.
- A set of interfaces should be available to anyone that would like to implement a new authentication system.
- By default, Core should expose standard authentication plugins such as Facebook and Google.
Benefits
Considering the wide range of authentication systems that currently exist, we cannot force the client to use the one that Core provides.