2017-02-01 5 views
0

Использование Larvels по умолчанию для блокировки некоторых путей в файле route/api.php.Laravel 5.3 и VueJS 2 Аутентификация

Route::get('/projects', '[email protected]')->middleware('auth:api'); 

Я вхожу в систему через PHP-форму (не через HTTP-запрос через Vue). Это создает сеанс и когда я отправить запрос HTTP через Vue я могу видеть, что заголовок включает в себя Cookie и X-CSRF-Токен Однако я получаю 401 {"error":"Unauthenticated."}

В моей конфигурации/AUTH У меня есть апи набор драйверов как «токен» (пытались изменить это на «сеанс», но это действительно работало: /)

Из моего понимания и того, что я читал в Интернете, я должен был использовать функциональные возможности Laravel по умолчанию для выполнения вызовов API из Vue HTTP-запросы.

this.$http.get('/api/projects') 
    .then(response => { 
    this.projects = response.body; 
    }) 
    .catch (err => { 
    console.log(err); 
    }); 

Я читал о методах проверки подлинности с помощью Токен JWT и хранения, что в локальном хранилище, когда пользователь входит в систему. Является ли это метод, который я должен использовать, или я должен быть в состоянии выполнить его по умолчанию Продвижение Laravel Auth?

Надеюсь, что мои вопросы будут иметь смысл, любая помощь/совет будут оценены.

ответ

3

Вредоносная программа auth:api не использует файлы cookie, она использует параметр api_token, который может быть передан через get или Bearer <token>. Просто используйте web промежуточное ПО.

Я полагаю, вам нужно получить доступ к тому же маршруту двумя способами - для пользователей API и для пользователей браузеров. Итак, почему бы вам не создать два маршрута для одного действия?

// api group with /api prefix 
Route::get('/projects', '[email protected]')->middleware('auth:api'); 

// web group 
Route::get('/projects', '[email protected]')->middleware('web'); 
+0

Thanks @ shukshin.ivan похоже, что я просто преувеличивал вещи. Поскольку пользователь будет аутентифицироваться через PHP и задавать сеанс, я сгруппировал свои «вызовы API» в веб-маршрутах. Если мне нужно получить доступ к API из внешнего источника, я буду использовать метод auth: api и token. – patskot

Смежные вопросы