30 lines
706 B
JavaScript
30 lines
706 B
JavaScript
import rateLimit from 'express-rate-limit';
|
||
|
||
/**
|
||
* 登录接口速率限制:5 次/分钟/IP
|
||
*/
|
||
export const loginLimiter = rateLimit({
|
||
windowMs: 60 * 1000, // 1 分钟
|
||
max: 5,
|
||
message: { error: '请求过于频繁,请稍后再试' },
|
||
standardHeaders: true,
|
||
legacyHeaders: false,
|
||
keyGenerator: (req) => {
|
||
return req.ip || req.connection.remoteAddress;
|
||
}
|
||
});
|
||
|
||
/**
|
||
* API 通用速率限制:100 次/分钟/IP
|
||
*/
|
||
export const apiLimiter = rateLimit({
|
||
windowMs: 60 * 1000,
|
||
max: 100,
|
||
message: { error: '请求过于频繁,请稍后再试' },
|
||
standardHeaders: true,
|
||
legacyHeaders: false,
|
||
keyGenerator: (req) => {
|
||
return req.ip || req.connection.remoteAddress;
|
||
}
|
||
});
|