2016-12-02 3 views
0

Я пытаюсь подключить генерировать пользовательский API laravel с использованием паспорта vue и laravel, но я продолжаю получать ошибку авторизации в своих заголовках. Этот ismy кодLaravel Passport 401 Несанкционированная ошибка с использованием Apache и Vue

<script> 
import Hello from './components/Hello' 

export default { 
    name: 'app', 

    components: { 
    Hello 
    }, 
    created() { 
    const postData = { 
     grant_type: 'password', 
     client_id: 2, 
     client_secret: 'sXdg5nOO4UU2muiHaQnTq4hDQjyj17Kd9AeKuNEx', 
     username: '[email protected]', 
     password: 'password', 
     scope: '' 

    } 
    this.$http.post('http://localhost:8000/oauth/token', postData) 

    .then(response => { 
    console.log(response) 

    const header = { 
     'Accept': 'application/json', 
     'Authorization': ~'Bearer ' + response.body.access_token 
    } 
    this.$http.get('http://localhost:8000/api/user', {headers: header}) 

    .then(response => { 
     console.log(response) 
    }) 
    }) 
    } 
} 
</script> 

Я сделал исследование и большинство ответов предполагают изменение апачский конфигурационный файл или файл .htaccess, но это также, кажется, не работает на моем конце. Любая помощь будет оценена :-)

ответ

1

это не проблема на в vue.js или larvel. я переместил свой l Larvel API с Apache на nginx, затем работал нормально. Я обновил свой обработчик промежуточного кода, как это. то работает отлично на сервере Apache

$origin = $request->server()['HTTP_ORIGIN']; 

      if(in_array($origin, $url)){ 
       header('Access-Control-Allow-Origin: '. $origin); 
       header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, X-Csrf-Token'); 

      } 
+0

Каково имя промежуточного обработчика? – user3098538

+0

Это мой помощник среднего склада – channasmcs

1

Я думаю, что если ваше приложение vue и приложение laravel объединяются, вы можете использовать свой api без какого-либо заголовка авторизации, который вам просто нужно отправить X-CSRF-TOKEN и отправить этот токен с каждым не просить никакой необходимости посылать проверки авторизации здесь

https://laravel.com/docs/5.3/passport#consuming-your-api-with-javascript

+0

Это будет лучшим вариантом для самостоятельного потребления API, однако они уже проходят заголовок Authorization с маркером, так это не решит проблему. – Dan

0

решительность (2) перейти к AuthServiceProvider.php

Keypoint: установить истечение маркера

Passport :: tokensExpireIn (Carbon :: сейчас() - > addDays (1));

Вы должны установить маркер истечения косяка быть бесконечным