React + Vite example using MetaMask Embedded Wallets (powered by Web3Auth) with a grouped connection that combines Auth0 and Google OAuth (both via the JWT flow). A grouped connection ensures the same user always gets the same wallet address regardless of which provider they use to sign in.
Without grouping, signing in with Google and signing in with Auth0 would produce two completely different wallet addresses for the same person.
- Node.js 20+
- npm
- A Client ID from the Dashboard
- An Auth0 application — get your Auth0 Client ID and domain from the Auth0 Dashboard
- A Google OAuth app — get your Google Client ID from the Google Cloud Console
- A grouped connection on the Dashboard combining Auth0 and Google (Grouped Connections guide)
git clone https://github.com/Web3Auth/web3auth-examples.git
cd web3auth-examples/custom-authentication/grouped-connection/auth0-google-jwt-grouped-examplenpm installcp .env.example .envEdit .env:
VITE_WEB3AUTH_CLIENT_ID=YOUR_CLIENT_ID
VITE_GOOGLE_CLIENT_ID=YOUR_GOOGLE_CLIENT_ID
VITE_AUTH0_CLIENT_ID=YOUR_AUTH0_CLIENT_ID
npm run devVisit http://localhost:5173 in your browser.
- MetaMask Embedded Wallets Documentation
- Grouped Connections Guide
- Auth0 Integration Guide
- Dashboard
- Community — Builder Hub
MIT