ошибка ":" token_not_provided: проверка подлинности API в Laravel, Vue и JWT - PullRequest
0 голосов
/ 03 мая 2018

Я создаю аутентификацию 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);

Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...