exodusanto / laravel-concierge
laravel项目的API令牌认证
v0.6.0
2022-10-07 13:10 UTC
Requires
- php: ^7.3|^8.0
- ext-json: *
- doctrine/dbal: ^2.10
- illuminate/support: ^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
通过一些新功能扩展Laravel的基座解决方案
- 在
GET
请求上自动刷新用户令牌 - 刷新/撤销方法
- Blade指令
安装
您可以通过composer安装此包
composer require exodusanto/laravel-concierge
使用方法
1. 迁移
使用api_token
和api_token_refreshed_at
迁移您的用户表。
Schema::table('users', function (Blueprint $table) { $table->string('api_token')->nullable(); $table->timestamp('api_token_refreshed_at')->nullable(); });
api_token_refreshed_at
该属性用于存储api_token
更新的时间戳
2. 模型
将RefreshApiToken
特质和RefreshApiTokenContract
契约添加到您的模型中
class User extends BaseUser implements RefreshApiTokenContract { use RefreshApiToken; }
3. 配置
发布concierge配置
php artisan vendor:publish --tag=concierge-config
在auth.providers
和concierge.tokens_lifetime
中使用相同的密钥来识别正确的模型
// config/auth.php 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], ] // config/concierge.php 'tokens_lifetime' => [ 'users' => 10800 // 3h ]
4. 中间件
将RefreshApiToken
添加到您的应用web
中间件组
// app/Http/Kernel.php protected $middlewareGroups = [ 'web' => [ ... \Exodusanto\Concierge\Http\Middleware\RefreshApiToken::class, ],
@Concierge
Concierge附带了一个自定义Blade指令,它将渲染认证用户的令牌
@concierge <!-- Rendered to --> <script> __CONCIERGE__ = { "api_token": "XXXXXXXXXXXX" } </script>
@Concierge 选项
@concierge($guard, $attributeName)
@concierge('other_guard', 'my_token') <!-- Rendered to --> <script> <!-- Token of other_guard authenticated user --> __CONCIERGE__ = { "my_token": "XXXXXXXXXXXX" } </script>
测试
composer test
变更日志
请参阅CHANGELOG以获取更多关于最近更改的信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过info@antoniodalsie.com发送电子邮件,而不是使用问题跟踪器。
致谢
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。
Laravel包模板
此包是使用Laravel包模板生成的。