Laravel 5.3 和 VueJS 2 身份验证
Laravel 5.3 and VueJS 2 Authenticating
我正在使用 Laravel 的默认身份验证来锁定 routes/api.php 文件中的某些路径。
Route::get('/projects', 'ProjectController@index')->middleware('auth:api');
我通过 PHP 表单登录用户(不是通过 Vue 的 http 请求)。
这会创建 session,当我通过 Vue 提交 HTTP 请求时,我可以看到 header 包含 Cookie 和 X-CSRF-Token 但是我一直收到 401 {"error":"Unauthenticated."}
在我的 config/auth 中,我将 api driver 设置为 'token'(已尝试将其更改为 'session' 但确实有效:/)
根据我的理解和我在网上阅读的内容,我应该能够使用默认的 Laravel 身份验证功能来完成来自 Vue HTTP 请求的 API 调用。
this.$http.get('/api/projects')
.then(response => {
this.projects = response.body;
})
.catch (err => {
console.log(err);
});
我已经阅读了有关通过生成 JWT 令牌并将其存储在用户登录时的本地存储中进行身份验证的方法。这是我应该使用的方法还是我应该能够使用默认方法完成它Laravel授权中间件?
希望我的问题有意义,任何 help/advice 将不胜感激。
auth:api
中间件不使用 cookie,它使用 api_token
参数,可以通过 get
或 Bearer <token>
header 传递。只需使用 web
中间件。
我想您需要通过两种方式访问同一路由 - API 用户和浏览器用户。那么为什么不为一个动作创建两条路线呢?
// api group with /api prefix
Route::get('/projects', 'ProjectController@index')->middleware('auth:api');
// web group
Route::get('/projects', 'ProjectController@index')->middleware('web');
我正在使用 Laravel 的默认身份验证来锁定 routes/api.php 文件中的某些路径。
Route::get('/projects', 'ProjectController@index')->middleware('auth:api');
我通过 PHP 表单登录用户(不是通过 Vue 的 http 请求)。
这会创建 session,当我通过 Vue 提交 HTTP 请求时,我可以看到 header 包含 Cookie 和 X-CSRF-Token 但是我一直收到 401 {"error":"Unauthenticated."}
在我的 config/auth 中,我将 api driver 设置为 'token'(已尝试将其更改为 'session' 但确实有效:/)
根据我的理解和我在网上阅读的内容,我应该能够使用默认的 Laravel 身份验证功能来完成来自 Vue HTTP 请求的 API 调用。
this.$http.get('/api/projects')
.then(response => {
this.projects = response.body;
})
.catch (err => {
console.log(err);
});
我已经阅读了有关通过生成 JWT 令牌并将其存储在用户登录时的本地存储中进行身份验证的方法。这是我应该使用的方法还是我应该能够使用默认方法完成它Laravel授权中间件?
希望我的问题有意义,任何 help/advice 将不胜感激。
auth:api
中间件不使用 cookie,它使用 api_token
参数,可以通过 get
或 Bearer <token>
header 传递。只需使用 web
中间件。
我想您需要通过两种方式访问同一路由 - API 用户和浏览器用户。那么为什么不为一个动作创建两条路线呢?
// api group with /api prefix
Route::get('/projects', 'ProjectController@index')->middleware('auth:api');
// web group
Route::get('/projects', 'ProjectController@index')->middleware('web');