Authentication Options for Minimum Viable Products

Building a modern web application is an increasingly complex and multidimensional task involving several important aspects (i.e Hosting, Databases, Authentication, etc.), each as important as the next, to be mulled over and carefully considered before releasing a Minimum Viable Product (MVP).

One of the vital features of an MVP is verifying a user’s identity, i.e Authentication. Providing an answer to the all-important ‘who are you?’ question. This is also a deep and important matter in itself, as it involves engineering concerns such as password validation, and email verification, as well as concerns relating to overall user Experience, and user Retention rates among others.

In this article, an overview of common authentication patterns will be provided, highlighting their associated pros/cons.

Why Authentication?

As modern applications have gotten larger and increasingly offer more nuanced solutions to real-world problems, ensuring proper authentication of users is a concern that is expected by users and involves lots of skill considerations. It also helps protect against identity theft and secures the user’s access to the application.

Customers/End-users tend to be more trusting of web applications that provide simple and easy-to-use authentication solutions as opposed to complicated, and complex patterns that take more time. The popularity of existing cloud authentication services helps to buttress this point, with services such as Firebase, and Auth0 known for their ease and familiarity while providing developers with multiple features for free.

Authentication Patterns

Some of the more common patterns of user authentication are briefly discussed below with their pros and cons.

Traditional (Password & Email/Username)

This is probably the most common and familiar pattern for authenticating users of your application. It involves a user entering their username/email, along with a secret code granting them access to the application and its services.

Pros

  1. Its popularity means it would be the method most users are familiar with.
  2. It does not depend on any third-party application for it to be implemented. This is good because some users might be uncomfortable with such.

Cons

  1. Log-in details can easily be stolen, and access to the account hijacked.
  2. The overall security of this pattern is heavily dependent on the ability of users to remember their credentials.

Passwordless Authentication

As the name suggests, this authentication pattern uses other security methods e.g fingerprint, magic link, secret token, etc, instead of the traditional password pattern. It allows the user access to the application and its services without entering any password. This pattern is offered by several authentication services providers i.e Firebase, Auth0, FusionAuth, Keyless, among others.

Pros

  1. This pattern is very user-friendly, with users no longer required to remember or store increasingly complex password patterns in order to register and use the application.
  2. It reduces sign-up time by a lot, potentially increasing user retention and usage of the application.
  3. They’re more secure for users, as fewer passwords mean fewer opportunities for malicious hackers.

Cons

  1. They can increasingly become complex to engineer in-house, thus setting up an over-reliance on third-party applications for basic application features.
  2. Some users may not feel too comfortable with this pattern as it deviates from traditional patterns of authentication, which they may be more familiar with.

Social Media Authentication

This approach leverages the interconnectedness of today’s world and verifies users based on their social media profiles. It allows users to use their existing information on social media platforms, such as Google, Facebook, etc, to sign in to the application, instead of creating a new account for the application.

Pros

  1. This is very easy to set up, and it has become an increasingly popular approach, ensuring a good user experience.
  2. It eliminates the burden of trying to remember multiple login credentials for users, and provides developers with a plethora of information, as provided by the social media platform.

Cons

  1. It isn’t very private, and some users may not be comfortable linking their social platforms with your application.
  2. Some users might not have compatible accounts, and this could lead to low user retention, with some users leaving and never coming back to complete the authentication process.
  3. In the event that the social media profile is compromised by malicious hackers, access to your application is compromised as well.

Multi-Factor Authentication

This pattern is often layered on other authentication patterns, some of which have been discussed above, and requires the user to provide two or more verification credentials in order to gain access to the application. These verification credentials would involve at least two of the following — Knowledge (something only the user would know e.g password), Possession (something only the user would have e.g a secure token), & Inherence (biometric data only the user can provide e.g thumbprint or face id).

Pros

  1. It eliminates the risks associated with password-based authentication.
  2. The dynamic secure token is much safer than the static login information.

Cons

  1. It can be quite dependent on third-party applications, thereby introducing potential developer experience issues with regard to scale and maintainability.
  2. It is also dependent on a physical device to verify Inherence which may not always be available.
  3. It is relatively complex from a user’s perspective compared to other authentication patterns.

Conclusions/Recommendations

In conclusion, the importance of proper authentication when developing MVPs cannot be overemphasised, as it is central to a functional modern web application. It is also important to keep in mind User Experience, and solutions that improve user retention, while also making considerations for scale & manageability (i.e the Developer Experience) of your implementation.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store