Ideally it'd be possible to just integrate [Passport](http://passportjs.org) which offers Strategies for nearly every Provider you can think of.