An abstract class implementing Passport's strategy API.