November 23, 2017 11:14 pm
Before your organization implements token-based authentication, it’s important to understand how this process works, when you should use it, and how you should implement it. There are a few basic steps to follow:
- Get familiar with the differences between cookies and tokens.
- Understand how token-based authentication works.
- Know the advantages of token-based authentication.
- Determine how you’re going to use token-based authentication.
- Implement token-based authentication on your website.
Ready to get started? Let’s dive in!
If you’re going to implement token-based authentication, it’s important to understand how tokens differ from cookies.
Let’s start with the basics:
What is cookie-based authentication?
A cookie is a small packet of information that lets the website know you’ve already been authenticated, giving access to features and capabilities that only registered users have access to.Cookie-based authentication is stateful, which means that an authentication record (or session) is kept on both the user’s browser and on the website’s server.
Here’s how the cookie-based authentication process works:
- Users enter their usernames and passwords on the website.
- The server verifies that the credentials are in its database of authorized users and then creates a new session.
- A cookie with the session ID is sent back and stored in your users’ browsers.
- When users want to take certain actions, the server matches their cookies with the information in its database to authorize them to proceed.
- When your users log out, the sessions are terminated on both the database and users’ browsers.
Every time a user logs in, a new session is created and stored. This allows the individual to complete tasks without needing to re-authenticate their identity multiple times.
What is token-based authentication?
Cookies and tokens are very similar except for one crucial difference: tokens are stateless.
This means that the server doesn’t need to keep a record of the session. Every action will be accompanied by a unique token that the server verifies one at a time. Since the server isn’t storing information (like cookies), it can operate at a quicker pace. This allows more users to be logged in at the same time completing more actions. Additionally, tokens are ideal for native platforms (i.e. iOS, Android, Windows 8, etc.).
Main point: Cookies and tokens have the same purpose, but tokens don’t need to be stored in the server in order to work. With tokens, the server only needs to verify that the token is valid before authorizing a request.
How exactly does a server verify tokens without storing additional information?
Here’s how token-based authentication works:
- The user enters their credentials, and the server verifies that the information is correct.
- When the server finds a match, a signed token is sent and stored in the user’s local storage.
- To complete an authorized action, the token is attached to the user’s request. The server then decodes and verifies the token.
- A match allows the user to proceed.
- When the user logs out, the token is destroyed.
While the user is logged on, every task and request that the user makes includes the encrypted token for the server to verify.
How does the server know if the token is valid?
Since no information is stored on the server, how does the server verify the token against its database of authorized users? Each token is signed with an encrypted key code, or digital signature, that only the server will know. The server verifies a token by running the algorithm that created the signature. If the two match, the server knows that the token is valid.
In other words: the token is encoded and signed just like a handwritten signature. If the signature hasn’t been tampered with, the server knows the token came from an authentic source and validates the request.
Main point: The website’s server verifies the token without storing information by checking that the token’s encrypted signature matches its security algorithm.
In the previous sections, we’ve mentioned why tokens are better than cookies, but now we’ll dive deeper into the benefits of token-based authentication.
Token-based authentication is more efficient.
Since tokens are stateless and only need to be stored on the user’s side, they’re a more scalable solution. All the server needs to do is create and verify the tokens—the information never needs to be stored. As a result, your server won’t get bogged down with information and can therefore maintain more users on the website at once.
Moreover, tokens can support multi-server platforms. Think about it this way: a user logs into your website via Server 1. Since the user is already authenticated, the first server validates any actions the user requests. If the user requests an action that’s hosted on Server 2, though, your developers will have to ensure that the user won’t need to re-authenticate their identity.
However, when you use tokens, both Server 1 and 2 have the tools they need to validate the token, so no extra steps are needed.
Token-based authentication is more flexible.
Since tokens can be used across multiple servers, they also provide authentication on different websites or applications at once (see the next section), which enables more collaboration between companies and platforms. Another important benefit is that tokens are well-suited for mobile applications. In fact, tokens are much easier to use than cookies on mobile apps because tokens allow you to control exactly which devices have access.
Plus, tokens are a more secure authentication method, since the token itself stores no sensitive information. Instead, the token acts as a placeholder for the user’s credentials. As the token travels between the server, web application, and the user’s browser, the user’s credentials are never at risk of being compromised.
Main point: Because tokens are easily scalable, they lessen the load on your server and allow users to stay authenticated on multiple servers during a single session.
Of course, token-based authentication can replace cookies in your traditional login process, but it can be used for other situations, too. Consider these 2 additional uses:
- Organizations can use tokens to keep users’ devices authenticated on mobile apps.
- Sites can track credentials that aren’t the traditional password and username. Any credential — be it an email account, social media username, or fingerprint — can be replaced with a token to authenticate a user and boost security.
Best of all? You can custom configure token-based authentication to grant access to other websites or applications in a process known as open authentication.
What is open authentication?
You’re probably already familiar with this form of authentication as social media sign in. Let’s say your company wants to use a social media management tool (think: HootSuite, Buffer, or Hubspot) to help schedule Facebook posts and Tweets.
In order for the tool to schedule and publish posts automatically, it needs certain permissions and access to your social media account. That doesn’t necessarily mean you want to give this tool your credentials, though. Instead, the social media management tool sends a request directly to your Facebook or Twitter account. Here’s how it works:
- The social media management tool makes a request, and you’re directed to the Facebook or Twitter login page.
- Log in, and then Twitter or Facebook will ask you to allow the management tool to publish posts on your behalf.
- When you agree to the terms, the website creates, signs, and sends a token to the social media management tool.
- To publish a post, the management tool includes the token with the request it sends to your social media account.
This token then lets Facebook or Twitter know that this application has the proper permissions to complete this action and validates the request. Interested in learning more about OAuth? Check out our complete guide!
Main point: Token-based authentication can be used to verify a user’s identity without actually using their credentials. This leads to increased collaboration between websites and services.
Now it’s time to implement tokens into your business or nonprofit’s website. There are two routes you can take:
- Have your web development team complete the proper steps to implement token-based authentication.
- Find an authentication tool that already uses token-based authentication.
Let’s take a look at each option in more detail.
Use your web development team.
This option is ideal for larger corporations or nonprofits that already have a strong development team in place. Since your team already has a solid understanding of your digital infrastructure, they can incorporate the necessary code on your website and test the system to ensure that it’s functioning properly.
Keep in mind, you’ll have to outline exactly how you plan to use tokens before starting. This may affect how you store information, which can lead to much bigger projects down the road.
Find an authentication tool.
If you have a small organization or need the development to be handled by an outside source, researching your various token and authentication options is the best way to start.
A vendor can assess your current situation and suggest the best solution, but the fast pace of technological development has resulted in more cost-effective, easy to use tools to address your needs with less fuss.
Authentication tools like Swoop are available for a minimal yearly price. Implement tokens and email authentication on your site in a single day and remove the need for passwords! A unique token sent from users’ email account securely validates their requests without requiring extra information or risking a breach.
Passwords are terrible for the internet — both for user experience and security. Safer, more efficient alternatives like token-based email authentication are the solution!
Main point: Carefully consider how you want to use token-based authentication and what resources your organization needs. Research all your options to find the most direct solution.
New authentication methods make it possible to safely explore and use the internet the way it was meant to be, completely unburdened and unrestricted.
If you’re interested in looking at other ways you can strengthen your website’s security and offer a better user experience, study up with these additional resources:
- Password Security Guide: One of the many benefits of using tokens is that it keeps your users’ passwords protected. Learn more about how you can improve your website’s password security with our ultimate guide.
- How Strong is My Password? | “Not Very,” Security Experts Say: If security is your main objective, you might want to consider using password alternatives. Learn why passwords aren’t the best at keeping information secure.
- Website Authentication Guide: Check out our comprehensive guide to how websites authenticate their users. We cover the general process, vulnerabilities of traditional methods, and new alternatives.
This post was written by Jamie L.