We all do it, Signing up and logging in to services. According to Dashlane the average internet user has 250 online accounts. I don’t know how many I have but I know I have signed up for more than I actively use.
Signup and login procedures have gone through very big changes the last few years in both user experience and security. In the early days a straightforward username, password, and then straight to app was enough. However, current standards have higher demands on our applications. Which in turn takes longer time to develop and maintain.
I and Oscar have built 60+ applications during our 10 years of working together. And in this article we will guide you through the current expectations of users and the considerations for developers when crafting a signup and login system.
Our focus will primarily be on the necessary functionality, particularly in the contexts of B2B and B2C scenarios. While we will touch less on design and UI/UX specifics, our emphasis will be on the essential knowledge required before beginning the coding phase. We will delve into both the user-visible functionalities and the internal aspects relevant to your team, covering security features and more.
By the end of this article, you'll have learnt our best practices for implementing a signup flow and you are ready to reason and plan the tasks to build a signup and login experience for your app.
Signing up and logging in is probably the very first interaction your users have with your app. In this article we will touch related aspects such as roles, subscription management and user management thus covering a broader concept of the ‘Signup Experience’
Our end goals for the ‘Signup Experience’ is to:
Now let’s have a look at what is needed to reach our goals.
At its essence, the processes of signing up and logging into an application may seem straightforward. Users need to register to establish their identity within the app before they can log in and use it. However, from a developer's perspective, crafting this experience involves numerous considerations to ensure it is both seamless for the user and upholds high security standards.
The baseline expectations for signup processes have evolved significantly from the simple account name and password setup of the past. Modern best practices include:
All of these elements require knowledge of security protocols, and you will need to read up on a lot of different documentation before you can start implementing them. And that is just the start. You will need to regularly review the security and stay up to date with possible exploits that are identified and ways to prevent them. For some languages and frameworks you might find open source software that will help you out. Make sure that they are regularly updated and that there is a community that can help out when you get stuck.
Expect to have to learn the package you use and learn the ways you can modify it to fit your needs.
You will also need to put in some time on the backlog to update it, which might sound straightforward, however, most packages are tied to a framework and in turn might require a framework update that introduces breaking changes. We have experienced this numerous times in different tech stacks and it takes a lot of painful time to remedy all the obscure bugs due to breaking framework changes.
There is some language and framework agnostic knowledge you will need to learn and stay up to date with.
For authentication and authorization these protocols and technologies are the essentials
There are many authentication methods and you will need to look into how they work. Most of them are based on a standard so knowing your fundamentals makes this step easier
There are many more than i listed here but these three points can be considered essentials to know
Account Verification Tools:
Roles and permissions
There are implementations of all of these things for various languages and frameworks. Take your time to explore them and try them out and see if they fit your needs. Sometimes you need to combine a few packages and stitch together some code to get it to the level you wish for
There are a lot of great examples we can draw inspiration from. We will take a look at three examples that cater to different types of audiences and see if there are some common elements and learnings that we later can apply to a unique context .
At their core, these services share similarities and have adapted it to their context. Netflix asks for payment upfront while Canva and Twilio let you try out their apps in trials or limited forms. All sign ups require minimal information and have different ways to get user accounts validated.
Canva provides the multiple login options, twilio offers two and Netflix relies only on password based login. The rationale for netflix could be cost savings and being able maintain a high standard with only password based login. It could also be that they have challenges associated with adding new methods into a big established system. While this isn't a necessity, for smaller or less recognized brands, providing multiple login options can enhance both security, user convenience and save you loads of development time.
The key takeaway is that all these services offer a smooth user experience, despite the underlying complexities in their implementation. The ideal approach for you would be to have the flexibility to try out different approaches without the added development overhead.
After exploring these examples, you'll likely pay more attention to the signup processes of different services, appreciating the nuances in their design and draw inspiration that you can apply to your context.
When developing an app or service tailored for businesses, several key factors require your attention, especially in the realm of user authentication and management.
In summary, when targeting a business audience, it is essential to offer a range of login options, cater to specific enterprise requirements, and provide flexibility in both security measures and customer management. These considerations will not only enhance the user experience for your B2B clients but also position your app as a versatile and accommodating solution in the business market.
A B2C application might not have as many complex needs as a B2B application. The important aspect is that your users should be able to do easy things by themselves, such as resetting passwords, managing their users (if it is a group or team based application) and also deleting their account. Roles might be needed in certain situations but do not have the same complexity as the B2B scenarios.
Alternative login options should be provided from brands consumers know and might use in their life , such as Apple and Meta.
Compliance Considerations: While compliance is a pillar in both B2B and B2C scenarios, its impact on decision-making processes differs. In B2B environments, compliance often plays a significant role in a client's choice of services. In contrast, B2C users might not actively consider compliance, but this doesn't diminish its importance. Adhering to regulatory standards is not only about doing right by your users and treating them well but also about safeguarding your business. Neglecting compliance can lead to serious repercussions down the line.
Lastly, smoothness and scalability should not be compromised. Your volume of users is much higher in B2C applications and you need to take that into consideration from day one.
Having built 60+ services I have noted that crafting a great signup experience demands a level of ambition that is higher than ever before. And the knowledge shared in this article highlights a lot of the mines that I have repeatedly stepped on. There are many things to consider and it can potentially consume more time than developing core app features itself. Whether you're starting a new project or levelling up your current system, These best practices for user management and Signup Experience is something you can draw inspiration from when moving on to the fun part, CODING 🙂