Nuxt-Laravel-Sanctum 用户登录后未经身份验证或错误:“路由 [登录] 未定义”

时间:2021-06-04 09:22:48

标签: laravel nuxt.js laravel-sanctum

我正在使用 Nuxt-Laravel-Sanctum。

localhost 上为 api 和客户端托管时,登录尝试成功并且用户响应正在恢复。

但是,上传到服务器(api:api.repairtofix.com 和客户端:admin-control.repairtofix.com)后,登录似乎成功了,而用户详细信息却没有返回。我收到 401 {message: "Unauthenticated."}

错误

即。它适用于 npm run dev,但在 npm run generate 之后它不起作用

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

登录.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 个答案:

答案 0 :(得分:1)

我找到了解决方案

sanctum.php 文件中,我忘记添加我的域。添加后我得到了来自 /user

的响应