kiwijobs/bundle-api

维护者

详细信息

github.com/kiwijobs/bundle-api

源代码

安装次数: 3,563

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 1

类型:项目

2.4.8 2020-10-02 07:38 UTC

README

JWT 认证保护器

在项目中启用

  1. Absolvent\api\Providers\AuthServiceProvider 添加到 config/app.php 的提供者。
  2. 创建 config/jwt.php,与该扩展包中的 config/jwt.php 相似。
  3. config/auth.php 中的 defaults.guard 更改为 jwt
  4. 添加
'jwt' => [
    'driver' => 'jwt',
    'provider' => 'users',
],

config/auth.php 中的 guards

  1. 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

基于权限的端点认证

permissioncan 中间件添加到端点控制器

class EndpointController extends \Absolvent\api\Http\Controller
{
    public function __construct()
    {
        $this->middleware('permission:TALENTDAYS_ADMIN|TALENTDAYS_AREA');
    }
    
    // ...
}

在上面的示例中,只有具有 TALENTDAYS_ADMINTALENTDAYS_AREA 的用户才能访问端点

允许发送带有多部分表单内容的 PATH 请求

Absolvent\api\Http\Middleware\PreparePatchMultiPartForm 添加到 Absolvent\api\Http\Kernel::$middleware

确保 PreparePatchMultiPartFormValidatePostSize 之后