I usually prefer old-school ID/password because of how generous Facebook and other services tend to be with personal information. It was a nightmare having LinkedIn scrape me from top to bottom of email contacts.
This talk does an excellent job of showing how site's like Facebook lie about access they offer to 3rd parties:
But if it's a social media network like Github, I'm usually ok with it, because I can control the access over the important aspects (like repos).
Like many things, I consider "progressive enhancement" the core of questions like this. Whilst I'm not a fan of "magic link", first and foremost you should offer the old school id and password approach JUST so people don't have to be on some OTHER service they may not want or have access to.
Social media services -- like facebook -- often have the accessibility failing that no JavaScript == no website, no login, and that (depending on the type of site) can land you in hot water legally.
BUT -- there is no reason not to offer it ON TOP of a normal login. It's easy enough to make an old-school conventional login form and registration, and then ENHANCE it with the option for social media logins on top of it.
ALWAYS have a fallback plan!
Facebook login FTW, wherever possible. The sheer convenience is the reason.
I depends on the site. I prefer to use Twitter. I often use Old-school Mail/ID because some sites have a Facebook login but not Twitter, and I never use Facebook.
Sunny Singh
Creating Content & Code
Normally I prefer old-school ID and password because I let my password manager remember that info and automatically login for me. In some cases though where it makes sense, I use social login based on the type of site. For example, it makes sense for me to use GitHub login on Hashnode and dev.to because they're related to development. This solves the major problem of trying to remember which social account you used. The same goes for other services which may be related to Twitter, Facebook, or Google.
On mobile, it's all about how quickly the site lets me login and typically that means social or magic link, because I'm already logged in to those services. However, Dashlane has done a great job at showing autofill prompts on Chrome for Android and native apps, which has essentially removed my pain in mobile login. As not everyone may use a password manager though, the more simpler options you offer the better.