absolvent/bundle-api

安装数: 7,686

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 9

分支: 1

类型:项目

2.3.0 2018-03-16 10:27 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 的用户才能访问端点

允许发送带有 multipart-form 内容类型的 PATH 请求

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

确保 PreparePatchMultiPartFormValidatePostSize 之后