Search company, investor...

Founded Year

2013

Stage

Acquired | Acquired

Total Raised

$332.7M

Valuation

$0000 

Revenue

$0000 

About Auth0

Auth0 provides customer identity solutions. It reduces security and compliance risks and improves user experience. It offers universal login, single sign-on, multifactor authentication, passwordless, and breached passwords. It serves financial services, healthcare, retail, and public sectors. It was founded in 2013 and is based in Bellevue, Washington. In March 2021, Auth0 was acquired by Okta.

Headquarters Location

10900 North East 8th Street Suite 700

Bellevue, Washington, 98004,

United States

888-235-2699

Loading...

Loading...

Research containing Auth0

Get data-driven expert analysis from the CB Insights Intelligence Unit.

CB Insights Intelligence Analysts have mentioned Auth0 in 3 CB Insights research briefs, most recently on Feb 1, 2023.

Expert Collections containing Auth0

Expert Collections are analyst-curated lists that highlight the companies you need to know in the most important technology spaces.

Auth0 is included in 4 Expert Collections, including Regtech.

R

Regtech

1,921 items

Technology that addresses regulatory challenges and facilitates the delivery of compliance requirements. Regulatory technology helps companies and regulators address challenges ranging from compliance (e.g. AML/KYC) automation and improved risk management.

T

Tech IPO Pipeline

568 items

C

Conference Exhibitors

5,302 items

C

Cybersecurity

7,454 items

These companies protect organizations from digital threats.

Auth0 Patents

Auth0 has filed 6 patents.

The 3 most popular patent topics include:

  • cloud infrastructure
  • database management systems
  • web frameworks
patents chart

Application Date

Grant Date

Title

Related Topics

Status

10/12/2022

8/22/2023

Web frameworks, Database management systems, Java platform, Cloud infrastructure, Application programming interfaces

Grant

Application Date

10/12/2022

Grant Date

8/22/2023

Title

Related Topics

Web frameworks, Database management systems, Java platform, Cloud infrastructure, Application programming interfaces

Status

Grant

Latest Auth0 News

Setting Up NextJS 13 with Auth0 and Sub-Domains: A Guide to Multi-Tenancy Web Apps

Oct 22, 2023

Hi guys! \ In the article today, we'll discuss, and I'll also show you how to set up NextJS 13 (with app folder), Auth0, and sub-domains. \ I'm currently working on a web multi-tenancy app. So, we need multiple sub-domains. For security reasons, we decided to use Auth0. We did follow the basic setup for Auth0, which can be found here. And everything worked smoothly and fine. But, we figured out that we need multiple sub-domains. So, I started researching, and I got into a lot of trouble with this because every time I entered subdomain.domain.com I got an error. Something about err callback, grant_type, etc. I can't reproduce the error now, but the status code was 400. \ Anyway, after a lot of research, a colleague of mine has found that we need to create our SDK. If you followed the basic quickstart from Auth0, you should have something like \ // src/api/auth/[auth0]/route.ts import { NextResponse, NextRequest } from 'next/server'; import { handleAuth } from '@auth0/nextjs-auth0'; export const GET = (req: NextRequest, res: NextResponse) => { return handleAuth()(req, res); // not neccesary to have (req, res) }; \ And beside of that, in our case, we had a middleware to set the user token from Auth0 You can ignore the first if statement for /api/status as we needed it for other checks in deployments. It is the only route on the application which doesn't require authentification. \ // src/middleware.ts import { NextRequest, NextResponse } from ‘next/server’; import { withMiddlewareAuthRequired, getSession, } from ‘@auth0/nextjs-auth0/edge’; export default withMiddlewareAuthRequired(async (req: NextRequest) => { if (req.nextUrl.pathname === ‘/api/status’) { return NextResponse.next(); } const res = NextResponse.next(); const user = await getSession(req, res); if (user) { // set your user.token whenever you want, db, cookies, localStorage etc return res; } return res; }); export const config = { matcher: ‘/’, }; \ So basically, with this setup, the domain.com login/logout was working fine. \ Now, as I mentioned earlier, my colleague found out we have to create our own Auth0 SDK, and we have to simulate a domain name. \ ==The following configuration is for macOS and Linux.== \ If you use Windows, use a Google search such as: how to add sub domains local windows So, open your terminal and run: $ sudo nano /etc/host Here, you have to add a root domain and a few subdomains the name will not matter, but the extension, yes. So they can be anything but need to end with .local. \ 127.0.0.1 cloudstar.local 127.0.0.1 apple.cloudstar.local 127.0.0.1 microsoft.cloudstar.local 127.0.0.1 github.cloudstar.local \ After you finish, click CTRL + X then press Y and enter Now you need to flush it in the terminal run $ sudo killall -HUP mDNSResponder So now, in Auth0 Dashboard at your application settings, you'll have to set the: * Please note that before Cloudstar.local there's a ==.== (dot) Allowed callbacks urls to: http://.cloudstar.local:3000/api/auth/callback Allowed logout urls to: http://.cloudstar.local:3000 \ // src/lib/auth0.ts import { initAuth0 } from '@auth0/nextjs-auth0'; export const initializeAuth0 = (req): ReturnType<typeof initAuth0> => { return initAuth0({ baseURL: `http://${req.headers.get('host')}`, secret: process.env.AUTH0_SECRET, issuerBaseURL: process.env.AUTH0_ISSUER_BASE_URL, clientID: process.env.AUTH0_CLIENT_ID, clientSecret: process.env.AUTH0_CLIENT_SECRET, session: { cookie: { domain: `.${req.headers .get('host') .split(':')[0] .split('.') .slice(-2) .join('.')}`, }, }, }); }; \ The req.headers.get('host') will return myapp.com or apple.myapp.com etc. And at the session.cookie.domain we want to set up the domain. But without a port, we need to make sure the cookie will be set for .myapp.com. So, basically, we want to be sure we set the cookie at the very top-level domain. \ A small tip: \ If you want to set HTTP or HTTPS based on development or production, you can pass this to the base. \ baseURL: `${ process.env.NODE_ENV === 'development' ? 'http' : 'https' }://${req.headers.get('host')}` \ We need to modify the API route as well to use the custom Sdk. \ // src/api/auth/[auth0]/route.ts import type { NextApiRequest, NextApiResponse } from 'next' import { initializeAuth0 } from '@/lib/auth0'; export const GET = (req: NextApiRequest, res: NextApiResponse) => { const auth0 = initializeAuth0(req); return auth0.handleAuth()(req, res); } \ Now, if you're trying to access your instance, it has to work to log in but will not work to log out. Why, you wonder? So, if you open the dev tools from your browser and go to application -> cookies. You'll see two cookies: \ First with the name appSesion, value, and the domain: myapp.com and the second one with domain: .myapp.com. That's normal for how the project is configured right now. \ But if you want to log out, I will do the refresh I was saying at the start of the article and will log you back in. \ And now comes the fix: \ The issue is middleware withMiddlewareAuthRequired. This middleware is setting the domain cookie, aka myapp.com. Honestly, I don't know if whoever from Auth0 wrote the docs forgot to add that, or it was just ignorance, or maybe it is writing somewhere that if you use withMiddlewareAuthRequired at the root level, it creates a new cookie. I saw a lot of examples using withMiddlewareAuthRequired(PageName), and I don't know if that formula is still creating the cookie, but at the root level, sure it is. Maybe Auth0 guys didn't know about it; who knows, I'm not here to point any fingers at anyone. \ Let's get back at the fix. So, you just have to change the name of middleware from withMiddlewareAuthRequired to anything else, let's say, middleware, and it will work perfectly fine. \ I'm also providing a GitHub repo for the final code to be more concise because here, I mostly explained what was the issues and so on, and we didn't focus too much on the code itself. \ https://github.com/alexcloudstar/nextjs13-auth0-sub-domains \ End note: \ I'm pretty sad that most of the discussions on Auth0 are open; there are a few responses or no responses at all, and then the topic is closed. Or, in some discussions, folks came and said: \ "Oh yeah, I had the same issue, but I managed to fix it" - Yes, I'm glad you did, but how? Because I need a fix as well at that very moment. \ Anyway, that's it for today, guys! \ Many thanks to my colleagues for help, the internet, and you guys for reading. If you have any queries, please let me know at alexcloudstar@gmail.com or on my social media. Until next time! \ Cheers! 🍻 Also published here.

Auth0 Frequently Asked Questions (FAQ)

  • When was Auth0 founded?

    Auth0 was founded in 2013.

  • Where is Auth0's headquarters?

    Auth0's headquarters is located at 10900 North East 8th Street, Bellevue.

  • What is Auth0's latest funding round?

    Auth0's latest funding round is Acquired.

  • How much did Auth0 raise?

    Auth0 raised a total of $332.7M.

  • Who are the investors of Auth0?

    Investors of Auth0 include Okta, K9 Ventures, Bessemer Venture Partners, Trinity Ventures, Meritech Capital Partners and 13 more.

  • Who are Auth0's competitors?

    Competitors of Auth0 include FusionAuth, ForgeRock, United Effects, Magic, OTPLESS and 7 more.

Loading...

Compare Auth0 to Competitors

Ping Identity Logo
Ping Identity

Ping Identity operates as an identity management company. It helps protect users and their digital interactions. Its services include orchestrating user journeys, preventing identity fraud, issuing digital credentials, and providing secure access to applications. The company primarily serves the digital enterprise sector. It was founded in 2002 and is based in Denver, Colorado.

JumpCloud Logo
JumpCloud

JumpCloud offers directory services easing unified information technology platforms. It secures, manages, and controls user access to resources from any location and device. JumpCloud was formerly known as SafeInstance. The company was founded in 2012 and is based in Boulder, Colorado.

Stytch Logo
Stytch

Stytch develops authentication software. It offers user management, security, access management, and more. It was founded in 2020 and is based in San Francisco, California.

ForgeRock Logo
ForgeRock

ForgeRock specializes in digital identity and access management within the technology sector. The solutions offered by the company allow consumers, employees, and devices to securely access the digital world, managing the complete lifecycle of identities from dynamic access controls, governance, and storing authoritative data. These services are primarily utilized by industries such as financial services, healthcare, government, retail, and media & telecommunications. It was founded in 2010 and is based in San Francisco, California.

tru.ID Logo
tru.ID

tru.ID is a company that focuses on digital identity verification in the cybersecurity industry. It offers an API platform that enables trust in digital identities through frictionless proof of possession of mobile phone numbers, aiming to prevent cybercrime, reduce costs, and increase revenues. The company primarily serves sectors that require secure digital identity verification, such as the ecommerce industry. It was founded in 2020 and is based in London, England.

Delinea Logo
Delinea

Delinea provides privileged access management (PAM) solutions for modern, hybrid enterprises. Its solutions secure critical data, devices, code, and cloud infrastructure to help reduce risk and ensure compliance and security. The company's customers range from small businesses to large financial institutions, intelligence agencies, and critical infrastructure companies. It was formerly known as Centrify. It was founded in 2004 and is based in Redwood City, California.

Loading...

CBI websites generally use certain cookies to enable better interactions with our sites and services. Use of these cookies, which may be stored on your device, permits us to improve and customize your experience. You can read more about your cookie choices at our privacy policy here. By continuing to use this site you are consenting to these choices.