首页 文章

Laravel Passport 401以下文档

提问于
浏览
0

我按照文件使用larval 5.6安装幼虫护照 . 目前,当我使用api后卫击中任何api路线时,我将在请求中获得401 http状态 . 我看起来扔了数百或似乎讨论这个主题,似乎找不到有用的东西 . 任何帮助都会很棒 .

  • 与作曲家一起安装

  • php工匠护照:安装

  • 将HasApiTokens放入用户模型中

  • Passport :: routes();在Auth提供商

  • 在config / auth.php中更改了提供程序

  • 把它放在web中间件\ Laravel \ Passport \ Http \ Middleware \ CreateFreshApiToken :: class中,

我的请求 Headers

Cache-Control: no-cache, private
Connection: keep-alive
Content-Type: application/json
Date: Thu, 17 May 2018 03:34:11 GMT
phpdebugbar-id: Xe76c4a977b813e9296e0705b5cd6bc05
Server: nginx
Transfer-Encoding: chunked
X-Powered-By: PHP/7.2.4
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
POST /api/chat HTTP/1.1
Host: ct.test
Connection: keep-alive
Content-Length: 33
Pragma: no-cache
Cache-Control: no-cache
Accept: application/json, text/plain, */*
Origin: http://ct.test
X-XSRF-TOKEN: eyJpdiI6IkQ3K3o3SExMYVZEWnYyejJQXC9zUlpnPT0iLCJ2YWx1ZSI6Ijh6UWVtdDlzU0hIWnpqZmdmazhSc0FMWUU5MTQ1N1dXNStZVlk3amhIbjNmYmlhN3BwaEJwbTI0MU5qUjVFRUtqWWV2aW1Td3JvdDg0QTd6RWJzem9RPT0iLCJtYWMiOiJkMDE0MmU2NGY5NmY3YmIxZjAwMjI4OGM1ZDUzMTU5OTBmMjNkM2YxOTZkNzM5NTAyMzliZjc0YTgyMTUyZWQ4In0=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4)     AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36
Content-Type: application/json;charset=UTF-8
Referer: http://ct.test/chat/new
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: laravel_token=eyJpdiI6IlhMSERkejlyNFRodkZtUGdZekI2V2c9PSIsInZhbHVlIjoiK2lTbGZCN3NPWjU4aDNLdkNcLzhIRzJhTE8wVmxET1J1aXdsRUgwbEQ1am9MME5MekRCWHRGQkgzaDhlTVc3OTNrc1BlMXFVQXF1SDN1UWRMNXoyRjRFQXBnTmZwVng1T0RKcVwvYWFzWHB6QkpBcERPOXUzUXc2SHVkeXNsaHRsVUJJQkZSbDVxK2NFQmdiT012cytWYmVHQmpWY01LSno3NXdvbGZjT3RIK3pmMkRUTTBvUUE1OXJ0bUNmNzkyYktFVWdIbTQ0YmZuZ05YSEs4dE5mcW5zcnBod2h4d2JsTkxSTWk0bk53S2hyK3VrRnNlRGFuUHU4RzZBblwvalhGMFB4YlhHeUlmTm1JanFKaCtoQUxTNUE9PSIsIm1hYyI6IjdjNzQ0MTIzMDBkOTc4ZGQ1M2I5M2Q5MThmN2NiZDU4MDU2YjhjZDIyOWQzNDhhNDkyY2Q5NGM4ZTFkOTU3MzYifQ%3D%3D; XSRF-TOKEN=eyJpdiI6IkQ3K3o3SExMYVZEWnYyejJQXC9zUlpnPT0iLCJ2YWx1ZSI6Ijh6UWVtdDlzU0hIWnpqZmdmazhSc0FMWUU5MTQ1N1dXNStZVlk3amhIbjNmYmlhN3BwaEJwbTI0MU5qUjVFRUtqWWV2aW1Td3JvdDg0QTd6RWJzem9RPT0iLCJtYWMiOiJkMDE0MmU2NGY5NmY3YmIxZjAwMjI4OGM1ZDUzMTU5OTBmMjNkM2YxOTZkNzM5NTAyMzliZjc0YTgyMTUyZWQ4In0%3D; laravel_session=eyJpdiI6IkxTM0JiQVZPekFkb3VDaFh5MTRGNWc9PSIsInZhbHVlIjoiemxaTXZVNGlPWFFOS1o3MUx6NUgrWFc2dEFVQ1dZTUlOTWc2bUJvMXY1NVBISTZuVmFLVGlKOVNveXk0dTMyWXFjaDk1eTBlemxoa0pnWWRLWVNYR0E9PSIsIm1hYyI6ImJhNzRhM2FiYjc1Mzc4NTVlYzY3MWUwZjkwNzZlOWVhNDY3OWQ5MmNlOTc0MGM1MDg1YmViNDNjYjQ0M2Q0MDkifQ%3D%3D

我的路线看起来像这样

Route::middleware('auth:api')->group(function () {
    Route::post('/chat', 'ChatController@store');
});

1 回答

  • 1

    你正在混合API策略 . 你引用了这个:

    此Passport中间件将附加laravel_token cookie到您的传出响应 . ...

    只有在您想要内部使用应用程序时才会这样 . 哪个没问题,但正如您的评论中指出的那样,您必须使用 web 中间件,而不是 auth:api 中间件 .

    这当然假设您正在使用 axios 发出请求,并保留了Laravel附带的默认javascript,它会自动将 x-csrf-token 注入 axios 标头 . 没有它,这将无法奏效 .

相关问题