quadram / laravel-passport
此包安装Laravel Passport库,并为您的用户提供了一些有用的资源,用于为用户颁发有效和无效的令牌。
dev-master
2020-11-24 15:05 UTC
Requires
- ext-json: *
- laravel/passport: ^9.0@dev
Requires (Dev)
- orchestra/testbench: ^5.0@dev
This package is auto-updated.
Last update: 2024-09-24 23:41:34 UTC
README
Laravel Passport
此库安装Laravel Passport库,并允许为已认证用户提供访问令牌。无需将用户重定向到oauth路由,只需使用当前用户实例获取新的访问令牌或刷新它即可。
安装项目
# require the library into your project
composer require quadram/laravel-passport
# install and configure library
php artisan quadram:laravel-passport-install
如何使用
将LaravelPassportTrait添加到您的用户模型中
use Quadram\LaravelPassport\Traits\LaravelPassportTrait;
class User extends Model
{
use LaravelPassportTrait, Authenticatable;
...
然后使用您的用户实例为用户颁发新的访问令牌
# access token
$this->createAccessToken();
# personal access token
$this->createPersonalToken();
这些调用将在用户实例中添加一个具有以下结构的新的授权字段
accessToken = [
'accessToken' => '....',
'refreshToken' => '....',
'expires' => 123456...
];
测试
当您使用phpunit测试发布令牌的路由时,Trait将返回一个测试令牌,而不会调用Passport提供的实际oauth路由。
如果您想测试任何Passport相关功能,您应该在路由中传递一个Authorization头。
此外,Trait将使用auth用户来更新和删除令牌,所以请记住使用"Passport::actingAs"以避免错误。
$user = factory(User::class)->create();
$user->createAccessToken();
Passport::actingAs($user);
$headers = [
'Authorization' => 'Bearer ' . $user->authorization['accessToken']
];
$this->withHeaders($headers)
->json('put', '/api/sessions', ['refreshToken' => $user->authorization['refreshToken']])
->assertStatus(200)
->assertsee('authorization')
->assertsee('accessToken')
->assertsee('refreshToken');
环境变量
可以使用.env文件配置每个令牌的默认过期时间。
# Default expiration time for access tokens in minutes, default = 60 * 24 -> 1 day
# TOKEN_EXPIRES_IN_MINUTES
# Default expiration time for refresh tokens in minutes, default = 60 * 24 * 30 -> 30 days
# REFRESH_TOKEN_EXPIRES_IN_MINUTES
# Default expiration time for personal tokens in minutes, default = 60 * 24 * 30 * 12 * 100 -> 1 year
# PERSONAL_TOKEN_EXPIRES_IN_MINUTES
# Curl should verify SSL certificate when calling the server (default = false)
# PASSPORT_CURL_VERIFY_SSL
待办任务
- 颁发令牌的基本Trait。
- 自定义Passport客户端以授权用户。
- 在Trait中添加创建用户的函数。
- 为会话管理创建默认路由。