I am researching multiple authentication platforms for an upcoming project, and was wondering what everyone is using for their projects and businesses?
I have built my own twice in the past, and it's a lot of efforts not spent on the core business. I would advice against and try to find a service you like instead.
I have been pleasantly surprised by Google Firebase Auth recently. So far I have only used it along other Firebase tools, but I think it's worth giving it a try even with your own backend.
Absolutely this. You wouldn't write your own payment service, so why write your own authentication service? I'm actually going a step further and writing a whole SaaS starter kit that handles authentication, user admin, subscriptions & billing, etc. because I feel strongly that you should be spending as much time as possible on your core business, and writing yet another auth system (and having to handle all those edge cases yourself) is just a massive waste of your time and a slowdown of your business.
We're trying to solve similar problem!
Though my full Shtack kit is going to be on the minimalist side and open source.
I saw your product actually just the other day! I have you on my list of competitors. =) You might not be doing exactly the same thing, but it's definitely an option people can consider when trying to solve the problem.
I'm happy to be in the same space with a lot of smart competition! I think there's a lot of room for a lot of different solutions here, and it reinforces the fact that there is a definite need for this kind of thing.
I'm wishing you the best of luck, and I hope we both can help a whole bunch of people!
I use django-allauth. It's the go-to auth package for the Django framework.
I asked a similar question recently and have decided to adopt Auth0 for a small SPA project. For a simple use case - login/signup/reset password - it works great. However, you can easily get lost in their UI because they build their business to accommodate all kind of use cases and technologies.
Yesterday, I spent a looong day trying to figure out how to get user roles and conditionally render the UI based on roles. It seems overly complicated for something relatively simple.
That said I'd still use it. In fact I'm finishing up a demo app showing how React + Node express + Auth0 can all work together. It's for my SaaS boilerplate project idea.
PS: Why not Firebase? I've made a conscious decision to support smaller businesses.
This boilerplate code looks great! About to check it out.
Let me know if you have any questions. Adonis.js starter kit is next on my list.
Django's built in authentication features.
Thanks everyone for your feedback! I will continue working through all the suggestions.
Hi @Spdydve I am building an IAM platform, and I am thinking if it could match your needs. But first of, what do mean by authentication? Let me give few things to consider:
I think you might get better candidates if giving some more details.
Google Firebase Auth is a way to go.
Using SuperTokens for session management. Initially planned to used express sessions but then ended up discovering SuperTokens library through a blog post. You can check it here: https://medium.com/hackernoon/the-best-way-to-securely-manage-user-sessions-91f27eeef460
You can check their website also if you interested: https://supertokens.io/
We just tried Okta and found it to be weirdly complicated for even simple tasks. Ended up just stripping it out and building it myself. Takes little time once you've done it a couple times and was way faster than dealing with Okta.
For the project I'm working on (a mobile app) I'm using Amazon Cognito. But I'm just going full aws stack for the backend, so that made the most sense.
IdentityServer4. I love it.
currently using firebase auth in my project, while good, I want full control of the data and flow, so writing my own. I was also using firebase for a few other things in my app but migrating away from it, firebase auth would have a bigger advantage if you're using other firebase services like firestore. If you're using node on client side the firebase packages aren't small.
If you are deploying your own, I have used Keycloak. It’s quite big but it does everything out of the box, and is OIDC and SAML compliant. The default templates are pretty awful though. I’m now considering https://github.com/ory/hydra, as well as online services. Hydra looks good because it implements the challenging bits (OIDC) but not the user management bits, and is Apache licensed.
+1 for Firebase Auth
Been using it for multiple apps for some time now and it works great. Not only the authorization by the user but also things like passing and verifying ID token, etc.
+1 Firebase Auth
I am currently using Firebase and even though it works well and it's easy to integrate, I've became aware of the fact that they don't seem to provide a straight forward way of migrating your users somewhere else. It feels like all of these auth services simplify your dev flow at the cost of locking you in.
I'm using Google Firebase Auth - it has plenty of docs, community, and tutorials on how to get up-to-speed and rolling really quickly. It usually takes a day or two, if not a few hours to set it up.
I use Alpas built-in authentication scaffolding. Alpas also has a module for social authentication via Google, Twiiter, and such. Quick and easy.
Google Firebase Auth works great for my app's needs.
In the past I also built my own authentication but it can be very complicated, tricky and error prone. For my current project I decided to go with auth0.com and I am loving it so far! However, as indiepanda already said their UI and documentation is a bit overwhelming in the first place.
I'm currently building a niche dating website, and this is one of the things I'm researching for. I'm using passportJS to start with and I'll probably build my own later.
Okta is great.
I have a startup that uses auth0, but to be honest i'm not very happy with it. Mainly because of poor documentation and their art of explaining simple things in a complex manner.
If I had to choose again I would use my own, either with passport.js or custom built.
In that control is very important.