(As I’m writing this @gilles reply showed up - which agrees with much of what I am writing.)
There are a lot of pieces to balance here. With systems for my customers, any part requiring login/authentication is typically a private system (i.e., employees or my customer’s customers - but a limited group not “anyone can sign up”), with everyone involved always (or almost always) accessing it in the US) and in general fewer problems to worry about. I have learned a lot about security over the years but I don’t consider myself an expert. That being said:
I really like the idea of not relying on a 3rd-party system. I don’t mind having it as an option, but personally I find it a bit creepy to use a Google (for example - and I like Google) account to get into a non-Google system. So almost always I skip that kind of thing - i.e., if I go to a system and it offers “Sign in with Google, Facebook, etc. or create an account”, I will create an account. If it doesn’t clearly offer a “create an account” option and I don’t really need the system, I go away. Seriously. I often find such things by way of Google News or just searching for stuff - it becomes a real barrier to me and I simply stay away. I don’t want that to happen to Codidact.
In addition, there are the very real concerns of blocked systems. We can’t guarantee a Codidact won’t be blocked, but if it gets blocked for authentication then it gets blocked for reading/posting and vice versa, and we see what we can do to mitigate the problem. But if it is a 3rd-party system we have no control.
That being said, some people like this way of using the internet, so offering it (by “it” I mean “login by piggybacking on Facebook or some other system, however that works (which I’ve never totally understood)” makes sense if it is easy to do. The other alternative - a 3rd-party system but exclusive to us (i.e., only for logging in to Codidact but not for other system) doesn’t make much sense to me for a number of reasons - it adds the “3rd party system that could disappear or be blocked, etc.”, it means we need to have emails in two places (i.e., it doesn’t avoid the issue (not a big deal to me, but it is to some) of storing email addresses since we still need them for notifications and the 3rd party service needs them as well), and it makes the Codidact system as a whole impossible for someone to copy and implement without contracting with a 3rd party as well.
As far as the fear of passwords. It really isn’t that hard to do reasonably correct. Passwords need to be salted & hashed, as I understand it when done correctly that alone mitigates a ton of problems by making it extremely hard for someone who steals the database to actually figure out the passwords. (If someone uses 123456, the password can be figured out by pure brute force methods - no database access needed.) Making the authentication system a separate internal part of our site can somewhat mitigate any risks, though I caution that hashing has to be done at the right place or you actually can (technically) increase risk - though if everything is on the same physical server it really isn’t that big a deal. Plus we aren’t talking classified national security here. So reasonable security measures are needed but not extreme measures. We can also increase security optionally via two-factor security or other methods, but keep in mind that anything that makes it harder for new users will effectively stop some new users, and we don’t want to do that.