
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
@bg-dev/nuxt-directus
Advanced tools
[![npm version][npm-version-src]][npm-version-href] [![npm downloads][npm-downloads-src]][npm-downloads-href] [![License][license-src]][license-href] [![Nuxt][nuxt-src]][nuxt-href]
Directus SDK for Nuxt.
useDirectusRest composable based on the new Directus SDKuseDirectusAuth with auto refresh of token and auto redirection.Add @bg-dev/nuxt-directus dependency to your project
# Using npm
npm install --save-dev @bg-dev/nuxt-directus
# Using pnpm
pnpm install --save-dev @bg-dev/nuxt-directus
# Using yarn
yarn add --dev @bg-dev/nuxt-directus
Add @bg-dev/nuxt-directus to the modules section of nuxt.config.ts and set directus options
export default defineNuxtConfig({
modules: ["@bg-dev/nuxt-directus"],
directus: {
rest: {
baseUrl: "http://localhost:8055", // Directus app base url
nuxtBaseUrl: "http://localhost:3000", // Nuxt app base url
},
graphql: {
enabled: true,
httpEndpoint: "http://localhost:8055/graphql",
wsEndpoint: "", // Omit to disable Websockets
},
auth: {
enabled: true,
mode: "session", // Auth mode 'session' or 'cookie'
enableGlobalAuthMiddleware: false, // Enable auth middleware on every page
userFields: ["*"], // Select user fields
refreshTokenCookieName: "directus_refresh_token",
sessionTokenCookieName: "directus_session_token",
loggedInFlagName: "directus_logged_in",
msRefreshBeforeExpires: 10000,
redirect: {
login: "/auth/login", // Path to redirect when login is required
logout: "/auth/login", // Path to redirect after logout
home: "/home", // Path to redirect after successful login
resetPassword: "/auth/reset-password", // Path to redirect for password reset
callback: "/auth/callback", // Path to redirect after login with provider
},
},
},
});
That's it! You can now use @bg-dev/nuxt-directus in your Nuxt app ✨
The module has useDirectusRest composable for data fetching with REST API. It is a wrapper around Directus SDK request API with auto refresh of access token and auto-imported commands.
For better DX, you can get the types definition of your directus project via directus-extension-generate-types. The generated types.ts file can be used in your Nuxt project via the global DirectusSchema type.
import type { CustomDirectusTypes } from "./types";
type DirectusTypes =
| "directus_activity"
| "directus_collections"
| "directus_dashboards"
| "directus_fields"
| "directus_files"
| "directus_flows"
| "directus_folders"
| "directus_migrations"
| "directus_notifications"
| "directus_operations"
| "directus_panels"
| "directus_permissions"
| "directus_presets"
| "directus_relations"
| "directus_revisions"
| "directus_roles"
| "directus_sessions"
| "directus_settings"
| "directus_shares"
| "directus_translations"
| "directus_users"
| "directus_webhooks"
| "directus_extensions"
| "directus_versions";
declare global {
interface DirectusSchema extends Omit<CustomDirectusTypes, DirectusTypes> {}
}
export {};
The module uses nuxt-apollo for Graphql data fetching with auto refresh of access token. Please refer to docs for API usage and DX optimizations.
To use graphql subscription make sure to set:
cookieWEBSOCKETS_ENABLED env variable to trueWEBSOCKETS_GRAPHQL_ENABLED env variable to true[!IMPORTANT]
- When SSR is enabled:
- Directus and Nuxt apps should share the same domain name because cookies's sameSite policy is set to
lax.- Please make sure to add
NODE_OPTIONS=--dns-result-order=ipv4firstenv variable in order to resolvelocalhostdomain on Node +v17.- For SSO login with
cookiemode, please make sure to setAUTH_<PROVIDER>_MODE=cookieenv variable on Directus +v10.10.
The module has useDirectusAuth composable for handling authentication.
login login with email/password and redirect to login pagelogout logout, clear states and redirect to logout pagefetchUser call to refetch and refresh user stateloginWithProvider login with SSO provider and redirect to login page on success and callback page otherwiserequestPasswordResetresetPasswordTo implement a custom logic on user login/logout events, you can use directus:loggedIn hook
export default defineNuxtPlugin({
hooks: {
"directus:loggedIn": (state) => {},
},
});
For protecting page routes, 2 possible approachs can be used:
enableGlobalAuthMiddleware: true;
definePageMeta({ auth: false });
definePageMeta({ middleware: "auth" }); // Redirects to login path when not loggedIn
definePageMeta({ middleware: "guest" }); // Redirects to home path when loggedIn
FAQs
[![npm version][npm-version-src]][npm-version-href] [![npm downloads][npm-downloads-src]][npm-downloads-href] [![License][license-src]][license-href] [![Nuxt][nuxt-src]][nuxt-href]
The npm package @bg-dev/nuxt-directus receives a total of 58 weekly downloads. As such, @bg-dev/nuxt-directus popularity was classified as not popular.
We found that @bg-dev/nuxt-directus demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.