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