0

使用 Laravel 5.6

我不想使用withoutMiddleware- 我正在尝试覆盖默认油门设置,但似乎没有任何效果。

'api' => [
    'throttle:60,1',
    'auth:api',
],

更改油门号似乎完全没有任何作用。

错误总是:

(
    [message] => Too Many Attempts.
    [exception] => Symfony\Component\HttpKernel\Exception\HttpException
    [file] => /root/laravel/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php
    [line] => 120
)

它在本地运行,但在 circleci 上,没有雪茄 - 尝试太多。

几乎似乎只有 circlci 忽略了与节流相关的任何设置并做自己该死的事情。

我试图改变一切——但唯一能阻止它发生的是withoutMiddleware,它还有其他我不想要的副作用。

4

1 回答 1

0

最后通过 GitHub上的这个解决方案的一个变体来解决这个问题。

在中创建了一个环境变量.env

OAUTH_TOKEN_MAX_ATTEMPTS='60,1' 

然后将以下内容添加到App\Providers\RouteServiceProvider

/**
 * Define the routes for the application.
 *
 * @return void
 */
public function map()
{
    $this->mapApiRoutes();

    $this->mapWebRoutes();

    $oauthMaxAttemtps = env('OAUTH_TOKEN_MAX_ATTEMPTS', '60,1');

    Route::post('/oauth/token', [
        'uses' => '\Laravel\Passport\Http\Controllers\AccessTokenController@issueToken',
        'middleware' => "throttle:$oauthMaxAttemtps",
    ]);
}

在 .circlci/cofig.yml 中:

jobs:
  build:
    docker:
      - image: weengsteam/php7.1-mysql-5.7
    working_directory: ~/laravel
    environment:
        APP_NAME: API
        APP_ENV: testing
        APP_KEY: base64:pLeAsEdOnTcOmEaNdStEaLmYdAtA?=
        APP_DEBUG: true
        DB_CONNECTION: mysql
        DB_HOST: 127.0.0.1
        DB_PORT: 3306
        DB_DATABASE: testing
        DB_USERNAME: laravel
        DB_PASSWORD: not-a-secret
        OAUTH_TOKEN_MAX_ATTEMPTS: 600,1
于 2018-06-13T10:33:00.337 回答