You are missing a route there for api post login
or change this line from
axios.post('http://site3.local/api/auth/login', this.form)...
to
axios.post('http://site3.local/auth/login', this.form)...
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
hello, I am building my first project with laravel and vue for my studies. Actually I have a big problem and I don't know how to solve it.
I made a vue spa with a laravel api. I already did the register function and everything works fine. But when I want to login, everytime I get a 405 error back.
I tested my api in postman, there everything works fine.
I don't know what to do.
my api routes:
Route::group([
'prefix' => 'auth'
], function(){
Route::post('login', 'AuthController@login');
Route::post('signup', 'AuthController@signup');
Route::get('signup/activate/{token}', 'AuthController@signupActivate');
Route::group([
'middleware' => 'auth:api'
], function(){
Route::get('logout', 'AuthController@logout');
Route::get('user', 'AuthController@user');
});
});
my function in login.vue:
loginUser: function() {
if(this.form.name !== '' && this.form.password !== ''){
this.formmsg['message'] = ''
this.laraerrors = '';
if(this.errors.any()){
console.log('errors exist', this.errors)
}else{
this.$validator.validateAll().then(() => {
console.log('form is valid', this.form)
axios.post('http://site3.local/api/auth/login', this.form).then(res => {
const token = res.data.token;
localStorage.setItem('user-token', token)
console.log(res);
this.router.push('/dashboard/welcome');
/*his.form.name = null;
this.form.password = null;
this.form.remember_me = false;
this.$validator.reset();*/
//this.router.push('/dashboard/welcome')
}).catch(error => {
this.laraerrors = error.response.data.errors;
console.log(this.laraerrors);
localStorage.removeItem('user-token');
});
});
}
}else{
this.formmsg['message'] = 'Bitte Nutzernamen mit zugehörigem Passwort eingeben.'
}
}
my login function in authcontroller:
public function login(Request $request)
{
$request->validate([
'name' => 'required|string',
'password' => 'required|string',
'remember_me' => 'boolean'
]);
$credentials = request(['name', 'password']);
$credentials['active'] = 1;
$credentials['deleted_at'] = null;
if(!Auth::attempt($credentials))
return response()->json([
'message' => 'Unautorisiert'
], 401);
$user = $request->user();
$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
if ($request->remember_me)
$token->expires_at = Carbon::now()->addWeeks(1);
$token->save();
return response()->json([
'access_token' => $tokenResult->accessToken,
'token_type' => 'Bearer',
'expires_at' => Carbon::parse(
$tokenResult->token->expires_at
)->toDateTimeString()
]);
}
I hope you can help me :(
Please or to participate in this conversation.