我已经创建了一个新的laravel 5.3项目并在本教程中进行了设置:https://mattstauffer.co/blog/introducing-laravel-passport
但是当我尝试通过在firefox中从http请求加载项发送restful请求来检查oauth服务器时,我得到Not Found - 404
我的请求网址: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 GuzzleHttp\Client;
$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');
我不知道我的错在哪里?
答案 0 :(得分:0)
我自己找到了解决方案。由于使用sudo命令安装npm,我们必须安装没有sudo的npm模块。因此,为了解决这个问题,我们应该删除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。
希望其他问题能够通过此解决方案快速解决。