无法阻止 Laravel 限制 circleci 上的功能测试
Cannot prevent Laravel from throttling feature tests on circleci
使用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
并且它有其他我不想要的副作用。
最终通过 GitHub 的 this solution 变体解决了这个问题。
在 .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
使用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
并且它有其他我不想要的副作用。
最终通过 GitHub 的 this solution 变体解决了这个问题。
在 .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