kiwijobs / bundle-api
2.4.8
2020-10-02 07:38 UTC
Requires
- kiwijobs/bundle-swagger: ^1.8
- laravel/framework: 5.8.*|6.*|7.*|8.*
- league/uri: ^5.0
- riverline/multipart-parser: ^1.1
- symfony/yaml: ^3.2|^4.0
Requires (Dev)
- barryvdh/laravel-ide-helper: ^2.4
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
This package is not auto-updated.
Last update: 2024-09-28 04:35:46 UTC
README
JWT 认证保护器
在项目中启用
- 将
Absolvent\api\Providers\AuthServiceProvider
添加到config/app.php
的提供者。 - 创建
config/jwt.php
,与该扩展包中的config/jwt.php
相似。 - 将
config/auth.php
中的defaults.guard
更改为jwt
- 添加
'jwt' => [
'driver' => 'jwt',
'provider' => 'users',
],
到 config/auth.php
中的 guards
- 将
JWT_SECRET
变量添加到.env
(例如JWT_SECRET=SvfJknJLYWwvadkCLVE7HIzn2JpWDkXv
)
注意:JWT_SECRET
应与 microservice-users
中的相同
用法
通常,当正确配置 JwtAuthenticationGuard
时,所有 Laravel 授权和认证功能应能正常工作。
获取 jwt 令牌/用户信息
use Illuminate\Support\Facades\Auth;
$user = Auth::user(); // returns JwtUser or null
$user = Auth::authenticate() // returns JwtUser or throws Exception
$jwtToken = Auth::getName(); // returns jwt token
$userSub = Auth::id(); // returns user email (jwt token `sub` claim)
用户信息来自 jwt 令牌,因此非常基础。要获取扩展用户信息,您必须调用 microservice-users
。
基于权限的端点认证
将 permission
或 can
中间件添加到端点控制器
class EndpointController extends \Absolvent\api\Http\Controller
{
public function __construct()
{
$this->middleware('permission:TALENTDAYS_ADMIN|TALENTDAYS_AREA');
}
// ...
}
在上面的示例中,只有具有 TALENTDAYS_ADMIN
或 TALENTDAYS_AREA
的用户才能访问端点
允许发送带有多部分表单内容的 PATH 请求
将 Absolvent\api\Http\Middleware\PreparePatchMultiPartForm
添加到 Absolvent\api\Http\Kernel::$middleware
确保 PreparePatchMultiPartForm
在 ValidatePostSize
之后