我的问题是,登录/注销在我的本地主机上完美运行,但是当我将其部署到服务器上时,我收到 301 和 405 错误,并显示“此路由不支持 GET 方法。支持的方法:POST”消息,我不明白为什么会这样。
我的 nuxt.config.js:
},
auth: {
strategies: {
local: {
user: {
property: 'data'
},
token: {
maxAge: 86400,
global: true
},
endpoints: {
login: { url: '/api/auth/login/', method: 'post' },
logout: { url: '/api/auth/logout/', method: 'post' },
user: { url: '/api/auth/user/', method: 'get' }
}
},
}
},
build: {
我的登录方式:
async login() {
this.errors = {};
try {
await this.$auth.loginWith('local', { data: this.loginForm });
...
} catch (error) {
if (error.response.status === 401) {
this.inactive = error.response.data.message;
}
this.errors = error?.response?.data?.errors;
}
},
我的 Laravel api.php:
Route::group(['prefix' => 'auth'], function () {
Route::post('login/', [AuthController::class, 'login']);
Route::post('register', [AuthController::class, 'register']);
Route::post('set-password', [AuthController::class, 'setPassword']);
Route::group(['middleware' => ['auth:sanctum']], function () {
Route::get('user/', [AuthController::class, 'user']);
Route::post('logout/', [AuthController::class, 'logout']);
Route::post('password-reset', [AuthController::class, 'passwordReset']);
});
});
我将从浏览器附加我的网络选项卡(第一个位于本地主机/工作中,第二个位于服务器上/不工作):
我不知道我搞砸了什么,但经过几天的调试后我已经绝望了。我已经清空了后端所有可能的缓存,所以我认为这不是问题。但希望其他人比我聪明得多,可以告诉我发生了什么事。
其实我已经解决了。 Laravel 处理 / 结尾的方式很糟糕(尝试重定向),因此从身份验证端点中删除它可以解决所有问题。