Each project has its own user system. Use the hosted sign-in or your own UI, with email, Google, GitHub and custom OAuth.
Add sign-up and sign-in to your app.
Each project has its own user system. Accounts, verification codes and sign-in state stay in your project. Your app keeps its own pages and brand.
Pick what you need. Start with the hosted UI, and switch to your own later.
Enter an email → check the code → signed in
Google, GitHub, or custom OAuth
After sign-in you get a JWT. The user id is the identity.
No login page to write. Copy the project’s Publishable Key (it starts with pk_, identifies the project, and can live in the browser) and generate the integration with one command. After sign-in, your app receives that user’s session token (JWT).
You design the login page. Your frontend calls your backend, and the backend calls Vectoree’s auth API with a server key (a project API key that has auth:*). That key stays on the server and must not go in the browser.
npx @vectoree/cli auth snippet --ui
npx @vectoree/cli auth snippet --rest --lang ts
How is this different from signing in to the Vectoree console?
Authentication is for your app’s end users. Signing in to the Vectoree console is for you and your team. The two account systems stay separate: an app user’s token cannot open the console, and a console account cannot stand in for an app user. See the comparison table in the setup docs.
Is the same email one account across projects?
No. Each project has its own user system. The same email is two independent accounts in two projects.
Can the Publishable Key be public?
Yes. It only identifies your project and can live in the browser. The server key stays private, on the server.
Do I need to build my own users table?
No. Users live in auth.users. Your business tables only store the user id.