Php Laravel Passport/oauth路线有效,但不适用/api

Php Laravel Passport/oauth路线有效,但不适用/api,php,laravel,vue.js,oauth-2.0,laravel-passport,Php,Laravel,Vue.js,Oauth 2.0,Laravel Passport,使用Laravel、Passport和Vue构建应用程序。这个问题并不直接涉及使用oAuth2登录,而是使用您自己的javascript代码使用Passport保护的api,如图所示 当访问主页并使用axios获取/oauth时,我得到了一个错误401,正如预期的那样 mounted() { //works as expected: 401 when logged out and response when logged in via /login axios.get('/oa

使用Laravel、Passport和Vue构建应用程序。这个问题并不直接涉及使用oAuth2登录,而是使用您自己的javascript代码使用Passport保护的api,如图所示

当访问主页并使用axios获取
/oauth
时,我得到了一个错误401,正如预期的那样

mounted() {

    //works as expected: 401 when logged out and response when logged in via /login
    axios.get('/oauth/clients')
          .then(response => {
              console.log(response.data)
          })

    //Always returns 400 error
    axios.get('/api/user')
          .then(response => {
              console.log(response.data)
          })

  }
使用laravel提供的默认登录(使用
web
auth)登录后,我可以返回主页,axios对
/oauth
的请求非常有效;例如,
/oauth/clients
按预期返回登录用户的客户端

mounted() {

    //works as expected: 401 when logged out and response when logged in via /login
    axios.get('/oauth/clients')
          .then(response => {
              console.log(response.data)
          })

    //Always returns 400 error
    axios.get('/api/user')
          .then(response => {
              console.log(response.data)
          })

  }
但是,当我尝试使用axios获取
/api/user
时,会出现一个400错误,消息未经验证(无论是在登录之前还是之后,都是相同的错误)

如果我是正确的,那么
/oauth
路由工作的事实证明了laravel_令牌、csrf以及任何类似的东西都被正确发送。因此,我认为这是一个服务器端问题,尤其是auth:api保护。在auth-config文件中,我将其设置为使用Passport,并跟踪所有文档

我很困惑,为什么调用api时会出现400错误而不是401错误,为什么一开始就没有进行身份验证

特别令人沮丧的是(11:30),这几乎是即插即用

邮递员也有同样的行为

问:这个错误有什么解决办法吗


完整代码。

将此代码添加到
应用程序/Http/Kernel.php

'web' => [
    // Other middleware...
    \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],

谢谢,我只是仔细检查了一下,我已经添加了它-我认为,
/oauth
路由工作的事实表明,和laravel_令牌正在被发送,如问题中所述。否。在发布问题之前,已经添加了该代码——我认为这不是问题的一部分;在您的视图中添加此选项是-两者都存在。同样,如果没有,则
/oauth
将无法工作。我不认为这是一个前沿问题。嗨,迈克尔,你是如何解决你的问题的?