Не найдено — 404 При попытке проверить passport oauth

#php #laravel-5 #oauth-2.0 #restful-authentication #laravel-passport

#php #laravel-5 #oauth-2.0 #restful-аутентификация #laravel-passport

Вопрос:

Я создал новый проект laravel 5.3 и настроил его из этого руководства : https://mattstauffer.co/blog/introducing-laravel-passport

но когда я пытаюсь проверить сервер oauth, отправив restful запрос из надстройки http-запроса в Firefox, я получаю Not Found — 404

мой URL-адрес запроса: http://localhost/pcheck/user И я установил заголовок : "Application/json"

Мой web.php Файл маршрута :

 // First route that user visits on consumer app Route::get('/redirect', function () { // Build the query parameter string to pass auth information to our request $query = http_build_query([ 'client_id' => 3, 'redirect_uri' => 'http://localhost/pcheck/callback', 'response_type' => 'code', 'scope' => 'conference' ]);

// Redirect the user to the OAuth authorization page
return redirect('http://localhost/pcheck/oauth/authorize?' . $query);

});

// Route that user is forwarded back to after approving on server Route::get('/callback', function (Request $request) { $http = new GuzzleHttpClient;

$response = $http->post('http://localhost/pcheck/oauth/token', [
    'form_params' => [
        'grant_type' => 'authorization_code',
        'client_id' => '3',
        'client_secret' => 'azWM7CGS4UtIQ30sd5bwW5s53P52QjaRmUdWjKpx',
        'redirect_uri' => 'http://localhost/pcheck/callback',
        'code' => $request->code,
    ],
]);

return json_decode((string) $response->getBody(), true);

});
  

Мой api.php Файл маршрута :

Route::get('/user', function (Request $request) { return $request->user(); })->middleware('auth:api');

Я не знаю, где я ошибаюсь, есть идеи?

Ответ №1:

Я нашел решение самостоятельно. Это из-за установки npm с помощью команды sudo, мы должны устанавливать модули npm без sudo. Итак, чтобы устранить эту проблему, мы должны удалить модули npm, а затем запустить npm install и подождать, пока он установит все необходимые зависимости.

К твоему сведению : Ты bootstrap.js файл и файл package.json должны выглядеть следующим образом :

Package.json :

 {
  "private": true,
  "scripts": {
    "prod": "gulp --production",
    "dev": "gulp watch"
  },
  "devDependencies": {
    "bootstrap-sass": "^3.3.7",
    "buble": "^0.14.0",
    "buble-loader": "^0.2.1",
    "gulp": "^3.9.1",
    "jquery": "^3.1.0",
    "laravel-elixir": "^6.0.0-11",
    "laravel-elixir-vue-2": "^0.2.0",
    "laravel-elixir-webpack-official": "^1.0.2",
    "lodash": "^4.16.2",
    "vue": "^2.0.1",
    "vue-loader": "^9.7.0",
    "vue-resource": "^1.0.3",
    "webpack": "^2.1.0-beta.22"
  }
}
  

Bootstrap.js :

 window._ = require('lodash');

/**
 * We'll load jQuery and the Bootstrap jQuery plugin which provides support
 * for JavaScript based Bootstrap features such as modals and tabs. This
 * code may be modified to fit the specific needs of your application.
 */

window.$ = window.jQuery = require('jquery');
require('bootstrap-sass');

/**
 * Vue is a modern JavaScript library for building interactive web interfaces
 * using reactive data binding and reusable components. Vue's API is clean
 * and simple, leaving you to focus on building your next great project.
 */

window.Vue = require('vue');
require('vue-resource');

/**
 * We'll register a HTTP interceptor to attach the "CSRF" header to each of
 * the outgoing requests issued by this application. The CSRF middleware
 * included with Laravel will automatically verify the header's value.
 */

Vue.http.interceptors.push((request, next) => {
    request.headers.set('X-CSRF-TOKEN', Laravel.csrfToken);

    next();
});


Vue.http.options.credentials = true; //very important
/**
 * Echo exposes an expressive API for subscribing to channels and listening
 * for events that are broadcast by Laravel. Echo and event broadcasting
 * allows your team to easily build robust real-time web applications.
 */

// import Echo from "laravel-echo"

// window.Echo = new Echo({
//     broadcaster: 'pusher',
//     key: 'your-pusher-key'
// });
  

И еще один важный совет: вы должны использовать последнюю версию npm: 6.9.

Надеюсь, что другие проблемы быстро решатся с помощью этого решения.