Nuxt-Laravel-Sanctum User unauthenticated after login OR Error: "Route [login] not defined"

Viewed 892

I am using Nuxt-Laravel-Sanctum.

While hosting on localhost for both api and client, login attempt is success and user response is getting back.

But, after uploading to server (api: api.repairtofix.com & client: admin-control.repairtofix.com) login seems to be success while user details is not getting back. I get error with 401 {message: "Unauthenticated."}

ie. It works on npm run dev, but after npm run generate it doesn't work

nuxt.config.js

axios: {
    credentials: true
},
auth: {
strategies: {
    'laravelSanctum': {
        provider: 'laravel/sanctum',
        url: 'https://api.repairtofix.com',
        endpoints: {
            login: {
                url: '/api/login',
            },
        },
    }
}

},

LoginController.php

public function __invoke(Request $request)
{
    $credentials = $request->only('email', 'password');
    if(!auth()->attempt($credentials)){
        throw AuthenticationException();
    }
}

api.php

use App\Http\Controllers\Auth\LoginController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

Route::post('/login', LoginController::class);

cors.php

"Accept"=>"application/json",

'paths' => ['api/*', '/user', 'sanctum/csrf-cookie'],

'allowed_methods' => ['*'],

'allowed_origins' => ['*'],

'allowed_origins_patterns' => [],

'allowed_headers' => ['*'],

'exposed_headers' => [],

'max_age' => 0,

'supports_credentials' => true,

.env

SESSION_DOMAIN=.repairtofix.com
SANTUM_STATEFUL_DOMAINS=admin-control.repairtofix.com

Login.vue

data() {
    return {
        login: {
            email: 'nmg.gta@gmail.com',
            password: 'password'
        }
    }
},
 
methods: {
    
    async userLogin() {
        try {
            let response = await this.$auth.loginWith('laravelSanctum', { data: this.login })
            console.log(response)
        } catch (err) {
            console.log(err)
        }
    }
}

Error message got on Network tab

enter image description here

1 Answers

I found the solution

In sanctum.php file I forgot to add my domains. After adding I got the resopnse from /user

Related