yetione/gateway-request-laravel

Laravel 的网关请求模块

1.0 2020-09-23 10:37 UTC

This package is auto-updated.

Last update: 2024-09-29 05:55:57 UTC


README

该包旨在检查来自 gateway 的请求。包含用于 Laravel/Lumen 的用户 guard 和 auth 类。

配置

提供者

需要注册 2 个服务提供者

  • Yetione\GatewayRequest\Logging\LaravelLoggingServiceProvider &mdsah; 用于配置日志记录器,向其添加 TagProcessor 并设置 request_id;
  • Yetione\GatewayRequest\Providers\GatewayServiceProvider — 用于在框架服务中注册 guards 和 auth

Laravel

<?php 
// config/app.php
use Yetione\GatewayRequest\Logging\LaravelLoggingServiceProvider;
use Yetione\GatewayRequest\Providers\GatewayServiceProvider;


return [
    'providers'=>[
        LaravelLoggingServiceProvider::class,
        GatewayServiceProvider::class
    ],
];

Lumen

<?php
// bootstrap/app.php
use Yetione\GatewayRequest\Logging\LumenLoggingServiceProvider;
use Yetione\GatewayRequest\Providers\GatewayServiceProvider;

$app->register(LumenLoggingServiceProvider::class);
$app->register(GatewayServiceProvider::class);

.env

.env 文件中需要指定以下参数

  • JWT_SECRET — 用于签名密钥
  • JWT_PRIVATE_KEY — 私钥路径
  • JWT_PUBLIC_KEY — 公钥路径
  • JWT_ALGO — 加密算法

示例

JWT_SECRET=XUu7XghJ3NFmoZ4nz7fKRRmaGogE4xZbCTT2xbyqESLeGeAQ3klIziNvaj6OuT0d
JWT_PRIVATE_KEY=file:///app/storage/keys/private_key.pem
JWT_PUBLIC_KEY=file:///app/storage/keys/ecdsa-p521-public.pem
JWT_ALGO=ES512

config/auth.php

要使用,需要在 config/auth.php 中添加新的 guard provider 并设置默认 guard。

在这种设置下,将检查所有传入的请求。

<?php
// config/auth.php
use Yetione\GatewayRequest\Enums\GatewayAuth;
[
    'defaults' => [
        'guard' => GatewayAuth::AUTH,           
        'passwords' => 'users',
    ],
    'guards'=> [
        GatewayAuth::AUTH=>[
            'driver'=> GatewayAuth::AUTH_GUARD,
            'provider'=> GatewayAuth::AUTH_PROVIDER
        ]
    ],
    'provider'=>[
          GatewayAuth::AUTH_PROVIDER=>[
            'driver'=> GatewayAuth::AUTH_PROVIDER,
          ]  
    ]
];