Tengo algunos problemas para autenticar a un usuario con Laravel Sanctum. He instalado todo según sea necesario, con Vite y Vue 3 como interfaz. Entonces, aquí está el problema ... cuando inicio sesión con la autenticación predeterminada de laravel, todo está bien, y cuando creo una solicitud desde la interfaz de Vue como:
const AxiosInstance = axios.create({ headers: { Accept: "application/json", "Access-Control-Allow-Origin": "*", "Content-Type": "application/json", "X-Requested-With": "XMLHttpRequest", }, baseURL: "http://127.0.0.1:8000/", withCredentials: true, });El verdadero problema es que, cuando trato de obtener el usuario, siempre devolverá Sin autenticar:
const user = async() => { await AxiosInstance.get('api/user') }Por lo tanto, el usuario no estará autenticado incluso si se crea directamente desde axios. Estoy comprobando cuándo el usuario ha iniciado sesión y laravel reconocerá algo como:
@guest <h1>Welcome guest</h1> @else <h1>Welcome user</h1> @endauthPero, ¿por qué api/usuario no está autenticado?
Es porque laravel scantum usa el token Bearer
Solo cambia tu instancia de axios como esta
import axios from "axios"; const token = localStorage.getItem('auth_token') const api = axios.create({ baseURL: 'http://127.0.0.1:8000/api/v1/', timeout: 1000, headers: { 'Accept': 'application/json', 'Authorization': `Bearer ${token}` } }); export default apiespero que te ayude