Home >Backend Development >PHP Tutorial >Nuxt 3 Laravel Sanctum Authentication: Secure Your SPA and API with Ease
Robust authentication is paramount in modern web development to safeguard user data and application integrity. The nuxt-sanctum-authentication
module provides a seamless integration between Nuxt 3 and Laravel Sanctum, simplifying the complexities of both single-page application (SPA) and API token-based authentication. This module efficiently handles tasks like CSRF protection, Bearer token management, and supports both server-side rendering (SSR) and client-side rendering (CSR). Whether you're building a secure login system or an API-driven project, this module offers a straightforward solution.
Before proceeding, explore these helpful resources:
nuxt-sanctum-authentication
ModuleThe nuxt-sanctum-authentication
module streamlines the integration between Nuxt 3 and Laravel Sanctum, managing the intricacies of SPA and API authentication, including CSRF token handling and Bearer tokens.
Install the package within your Nuxt 3 application:
npm install @qirolab/nuxt-sanctum-authentication
nuxt.config.ts
After installation, add the module to your nuxt.config.ts
:
export default defineNuxtConfig({ modules: ["@qirolab/nuxt-sanctum-authentication"], sanctum: { apiUrl: "http://api.yourapp.test", // Replace with your Laravel API URL }, });
This configuration specifies the API URL for your Laravel application.
Create a login page in your Nuxt 3 application where users enter their credentials. Utilize the useSanctum()
composable to manage login requests. A basic example:
<template> <form> <input v-model="form.email" type="email" placeholder="Email"> <input v-model="form.password" type="password" placeholder="Password"> <button type="submit">Login</button> </form> </template>
This form submits user credentials to the backend via Sanctum's login endpoint, ensuring secure communication using CSRF tokens.
The module defaults to cookie-based SPA authentication. For API token authentication, modify the authMode
in nuxt.config.ts
:
sanctum: { apiUrl: "http://api.yourapp.test", authMode: "token", // Enables token-based authentication }
Cross-Origin Resource Sharing (CORS) errors are common when setting up cross-origin authentication. Adjust your Laravel config/cors.php
:
'paths' => ['api/*', 'sanctum/csrf-cookie', '/login'],
Include the login endpoint in the paths
array to enable CORS requests.
After configuration, test your login page. Inspect the login request in your browser's developer tools (Network tab). A successful response without CORS errors indicates correct configuration. The combination of Nuxt 3 and Laravel Sanctum provides a robust and easily implemented authentication solution for both SPAs and APIs.
nuxt-sanctum-authentication
This module simplifies authentication between Nuxt 3 and Laravel Sanctum by handling CSRF tokens, Bearer tokens, and seamlessly supporting SSR and CSR.
Securing your Nuxt 3 application with Laravel Sanctum is simplified with the nuxt-sanctum-authentication
module. This guide provides a clear path to implementing secure and efficient authentication for your users.
The above is the detailed content of Nuxt 3 Laravel Sanctum Authentication: Secure Your SPA and API with Ease. For more information, please follow other related articles on the PHP Chinese website!