Я создаю аутентификацию JWT API в Laravel, как указано в руководстве по этой ссылке:
https://codeburst.io/api-authentication-in-laravel-vue-spa-using-jwt-auth-d8251b3632e0
Все остальное в порядке, но у меня возникла эта проблема при входе в систему:
ошибка ":" token_not_provided
Похоже, что вход в систему проходит успешно, как я вижу в консоли или почтальоне, но токен никогда не извлекается. Это происходит, когда приложение пытается загрузить пользовательские данные в конечной точке api / auth / user.
GET http://127.0.0.1:8000/api/auth/user 400 (неверный запрос)
это мой метод входа в систему:
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
if ( ! $token = JWTAuth::attempt($credentials)) {
return response([
'status' => 'error',
'error' => 'invalid.credentials',
'msg' => 'Invalid Credentials.'
], 400);
}
return response([
'status' => 'success'
]) ->header('Authorization', $token);
}
Тогда пользовательский метод
public function user(Request $request)
{
$user = User::find(Auth::User()->id);
return response([
'status' => 'success',
'data' => $user
]);
return $user;
}
Аутентификационные маршруты:
Route::post('auth/login', 'JWTAuthenticateController@login');
Route::group(['middleware' => 'jwt.auth'], function(){
Route::post('auth/logout', 'JWTAuthenticateController@APIlogout');
Route::get('auth/user', 'JWTAuthenticateController@user');
});
Компонент входа в VueJS:
<script>
export default {
data(){
return {
email: null,
password: null,
error: false
}
},
methods: {
login(){
var app = this
this.$auth.login({
params: {
email: app.email,
password: app.password,
},
success: function () {
console.log('Success')
},
error: function () {
console.log('Something Went wrong!')
},
rememberMe: true,
redirect: {name:'inventories'},
fetchUser: true,
});
},
}
}
</script>
Я не могу понять, как это исправить. Только не говорите, почему заголовок авторизации не возвращается:
return response([
'status' => 'success'
]) ->header('Authorization', $token);
Пожалуйста, помогите.