---
title: Application Authentication on Vercel
description: Learn best practices for application authentication Vercel
url: /kb/guide/application-authentication-on-vercel
canonical_url: "https://vercel.com/kb/guide/application-authentication-on-vercel"
last_updated: 2026-06-11
authors: Rich Haines
related: []
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

Authentication verifies a user's identity to provide access to your application. When adding authentication to your serverless application, you'll likely use one of two different methods: [stateless sessions](https://auth0.com/blog/stateless-auth-for-stateful-minds/) or [JSON Web Tokens (JWTs)](https://jwt.io/).

### Stateless Sessions

After authenticating with your provider, the client receives session data to be stored as a browser cookie. This cookie is commonly signed and encrypted for maximum security. This sealed cookie contains all session data – preventing making an additional call to the server.

### JSON Web Tokens (JWTs)

JWTs allow you to store user information directly in the token, not just the access credentials. This can prevent an extra database lookup to fetch information like user names.

### Granting Access

To check for access inside of your Serverless Functions, you can inspect the JWT or session content. This gives you complete control over the authentication flow. In the "providers" section below, we've included some examples that will quickstart setting up authentication in your application.

## Providers

Authorization is difficult to implement securely. We strongly recommend using a provider if possible.

- [NextAuth](https://vercel.com/templates?auth=nextauth.js)
  
- [Auth0](https://vercel.com/templates?auth=auth0)
  
- [Stytch](https://stytch.com/)
  
- [Supabase Auth](https://vercel.com/templates?auth=supabase-auth)
  
- [Firebase](https://github.com/vercel/next.js/tree/canary/examples/with-firebase)
  
- [Okta](https://developer.okta.com/docs/)
  
- [Magic](https://github.com/vercel/next.js/tree/canary/examples/with-magic)
  
- [Userbase](https://github.com/vercel/next.js/tree/canary/examples/with-userbase)
  
- [AWS Cognito](https://aws.amazon.com/cognito/)
  
- [Descope](https://www.descope.com/)
  
- [Clerk](https://github.com/vercel/next.js/tree/canary/examples/with-clerk)
  
- [Neon Auth](https://neon.com/docs/auth/overview)