nuxt-auth
is a feature-packed, open-source authentication module for Nuxt 3 applications.
npm i -D @sidebase/nuxt-auth
Then visit the Quick Start documentation to setup the module.
nuxt-auth
wraps NextAuth.js to offer the reliability & convenience of a 12k star library to the nuxt 3 ecosystem with a native developer experience (DX). Features of nuxt-auth
include:
- โ๏ธ Authentication providers:
- โ๏ธ OAuth (e.g., Github, Google, Twitter, Azure, ...)
- โ๏ธ Custom OAuth (write it yourself)
- โ๏ธ Credentials (password + username)
- โ๏ธ Email Magic URLs
- โ๏ธ Isomorphic / Universal Auth Composable
useSession
supports:- actions:
getSession
,getCsrfToken
,getProviders
,signIn
,signOut
- getters:
status
,data
,lastRefreshedAt
- full typescript support for all methods and property
- actions:
- โ๏ธ Application-side middleware protection
- โ๏ธ Server-side middleware and endpoint protection
- โ๏ธ Advanced features for session life-cycle management:
- Refresh the session periodically
- Refresh the session on tab-refocus
- One time session fetch on page load, afterwards for specific actions (e.g., on navigation)
- ๐ง Session broadcasting between tabs (see #70)
- โ๏ธ Persistent sessions across requests
- โ๏ธ REST API:
GET /signin
,POST /signin/:provider
,GET/POST /callback/:provider
,GET /signout
,POST /signout
,GET /session
,GET /csrf
,GET /providers
Visit the nuxt-auth
demo page here:
You can find the demo source-code here.
- Run
npm run dev:prepare
to generate type stubs. - Use
npm run dev
to start the module playground in development mode. - Run
npm run lint
to run eslint - Run
npm run types
to run typescheck via tsc - Run
npm publish --access public
to publish (bump version before)
This module also has it's own playground:
> git clone https://github.com/sidebase/nuxt-auth
> cd nuxt-auth
# **OPEN THE `~/playground/server/api/auth/[...].ts` and configure your own auth-provider
> npm i
> npm run dev:prepare
> npm run dev
# -> open http://localhost:3000