Throttle the token endpoint per account and address, not per address
POST /api/v1/auth/token was limited to 6 requests a minute per IP. The deployed MCP server signs every user in from a single container, so under a per-IP budget one person's mistyped password, or a stranger's guesses, would lock every other user out of it. The named `auth-token` limiter keys on the lower-cased username (or the refresh token) plus the address, still 6 a minute, with a 30-a-minute ceiling per address to bound how many accounts one client can try. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -152,7 +152,7 @@ Route::prefix('v1')->name('api.v1.')->group(function () {
|
||||
// Convenience endpoint for first-party clients: exchanges credentials for
|
||||
// a token upstream so they do not need to know the identity server's URL.
|
||||
Route::post('auth/token', [TokenController::class, 'store'])
|
||||
->middleware('throttle:6,1')
|
||||
->middleware('throttle:auth-token')
|
||||
->name('auth.token');
|
||||
|
||||
Route::middleware(['auth:api', 'throttle:api'])->group(function () {
|
||||
|
||||
Reference in New Issue
Block a user