gpt4 book ai didi

php - 使用个人访问 token 在 Postman 中未经身份验证的 Laravel 5.3 Passport API

转载 作者:行者123 更新时间:2023-12-04 16:11:27 24 4
gpt4 key购买 nike

我已经根据此处的文档使用 passport 设置了 Laravel:https://laravel.com/docs/5.3/passport

一些人使用 oAuth 实现询问过这个问题,但我正在尝试使用个人访问 token 而不是 oAuth。一个建议是删除 auth 中间件,但显然这会使应用程序完全开放,因此任何人都可以发出请求。

我有以下路线(在 routes/api.php 中):

Route::get('/test', function(){
return 'returned string from test route';
})->middleware('auth:api');

如果我删除了 auth 中间件,那么路由就可以正常工作,但是当再次启用 auth 中间件时,我在 postman 中收到以下错误:

{"error":"Unauthenticated."}

这些是通过 postman 发送的标题:

GET /api/test HTTP/1.1
Host: localhost:8000
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImU4ZmY5MDMwY2EyM2E2MDYwODViN2Y3ZWNiMzcxNDY1MzQxNDViNTk4ODU4NmZhNDljYzU2YjMzYWZiNzhkYTk5OTIwZWMzYzEwNTBkNjZjIn0.eyJhdWQiOiIyIiwianRpIjoiZThmZjkwMzBjYTIzYTYwNjA4NWI3ZjdlY2IzNzE0NjUzNDE0NWI1OTg4NTg2ZmE0OWNjNTZiMzNhZmI3OGRhOTk5MjBlYzNjMTA1MGQ2NmMiLCJpYXQiOjE0NzU1MDMxNjUsIm5iZiI6MTQ3NTUwMzE2NSwiZXhwIjowLCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.IpzKK29dJCpliUXQvPRss87kGFngFcXXwV3jRwhbZOZLxl-4UV70cBsSigmqUuBsHQ4onVl_Cjcq6cEmMFvTZZr7D9AtY3EmScvMPjoFh4KQ3wgd5CoyWfcLQgoBxbElNxL0xW2fIQhpeQd_8Yz_Pr5BByGVTpxfg4JJZ4PzovvZsa2R3izYtqw6-qeurQOtsfOnot5uoLDeDDc76klifnfHfOcNZSoIFGNP3gIGKYBe6lfFuDViR_mQkwQS5_UmERt3GSkEvJjGMtwcRjWY7VPAJ4tvWLnyLw0roGU2e37L0wsqfJ8OrG0Cipv-anXAW_utSo-fiVMr8ZeAWIPguq73Zd44x95YY3nNPOKD5dVIRZM7rQgdhjIwTEz1ggtSXLp-Fu3QOtXaHUahCHvjOTdiTYEa-GR4TZ5wGzt-aRhjdBB7WTe0C6T9ZWVwQr0kJk8AxW6ne87wwJYp_shGunTclZ3SCq5VYg2K_MclbJl65-dT8x-nwqg0lqfNx9s1wmtryrMFIPoBEyaGNEK1aWGHKq418-BIQ1_UAhcHHtEXclWvsGWwhyo3aso-E-sCN2o_IkYvSboIsdFAIXvDvQmoAwis6f1J57zWH8AW1ynCFcBgzBDjIyiaCE5nqtb_4zbEXr8L1EbcllbtZkq3vd9w996kO7xlpBEWwPY8IWg
Accept: application/json
Cache-Control: no-cache
Postman-Token: 6bc483b2-23df-acce-7eef-5a443f8f5d45

最佳答案

  • 首先,永远不要修改供应商文件,除非您有完全合法的理由这样做,并且有您希望看到实现的功能或您发现并修复的错误您正在使用的包。

  • JWT 上的过期时间可能已设置为在创建后立即过期。您可以使用以下链接来检查访问 token 的“ttl”(生存时间)字段:

https://jwt.io/

如果您发现您的 token 在创建时即将过期,您可以转到您的 app\providers\AuthServiceProvider.php 类并在使用 Passport 类时添加这些方法:

use Carbon\Carbon;
use Laravel\Passport\Passport;
...

Class AuthServiceProvider extends ServiceProvider {
...
...

public function boot() {
$this->registerPolicies();
Passport::routes();
Passport::tokensExpireIn(Carbon::now()->addYears(20));//You can also use addDays(10)
Passport::refreshTokensExpireIn(Carbon::now()->addYears(20));//You can also use addDays(10)
Passport::pruneRevokedTokens(); //basic garbage collector
}
}
  • 确保您使用的是最新版本的 Passport目前我使用的是 1.0.8 版本,但我可能已经过时了,因为他们和社区每隔几周就会不断推出新的修订版。

这里是关于这个问题的一些相关问题的链接。您或许可以在以下链接之一中找到您的答案。如果上面提到的不是您要找的。

Passport - "Unauthenticated." - Laravel 5.3

非常详细

https://github.com/laravel/passport/issues/151

关于php - 使用个人访问 token 在 Postman 中未经身份验证的 Laravel 5.3 Passport API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39833897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com