支持速率限制
然后把oauth单独放一个页面 一些UI调整
This commit is contained in:
69
middleware/rateLimit.js
Normal file
69
middleware/rateLimit.js
Normal file
@ -0,0 +1,69 @@
|
||||
const rateLimit = require('express-rate-limit');
|
||||
|
||||
// 通用速率限制
|
||||
const generalLimiter = rateLimit({
|
||||
windowMs: 15 * 60 * 1000, // 15分钟
|
||||
max: 100, // 限制每个IP 15分钟内最多100次请求
|
||||
message: {
|
||||
success: false,
|
||||
message: '请求过于频繁,请稍后再试'
|
||||
},
|
||||
standardHeaders: true,
|
||||
legacyHeaders: false,
|
||||
});
|
||||
|
||||
// 登录注册接口限制(更严格)
|
||||
const authLimiter = rateLimit({
|
||||
windowMs: 15 * 60 * 1000, // 15分钟
|
||||
max: 5, // 限制每个IP 15分钟内最多5次登录/注册尝试
|
||||
message: {
|
||||
success: false,
|
||||
message: '登录/注册尝试过于频繁,请15分钟后再试'
|
||||
},
|
||||
standardHeaders: true,
|
||||
legacyHeaders: false,
|
||||
});
|
||||
|
||||
// OAuth授权接口限制(最严格)
|
||||
const oauthAuthLimiter = rateLimit({
|
||||
windowMs: 15 * 60 * 1000, // 15分钟
|
||||
max: 10, // 限制每个IP 15分钟内最多3次OAuth授权尝试
|
||||
message: {
|
||||
success: false,
|
||||
message: 'OAuth授权请求过于频繁,请15分钟后再试'
|
||||
},
|
||||
standardHeaders: true,
|
||||
legacyHeaders: false,
|
||||
});
|
||||
|
||||
// OAuth令牌接口限制(严格)
|
||||
const oauthTokenLimiter = rateLimit({
|
||||
windowMs: 15 * 60 * 1000, // 15分钟
|
||||
max: 10, // 限制每个IP 15分钟内最多10次令牌请求
|
||||
message: {
|
||||
success: false,
|
||||
message: '令牌请求过于频繁,请稍后再试'
|
||||
},
|
||||
standardHeaders: true,
|
||||
legacyHeaders: false,
|
||||
});
|
||||
|
||||
// OAuth客户端管理接口限制
|
||||
const oauthClientLimiter = rateLimit({
|
||||
windowMs: 15 * 60 * 1000, // 15分钟
|
||||
max: 20, // 限制每个IP 15分钟内最多20次客户端管理操作
|
||||
message: {
|
||||
success: false,
|
||||
message: '客户端管理操作过于频繁,请稍后再试'
|
||||
},
|
||||
standardHeaders: true,
|
||||
legacyHeaders: false,
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
generalLimiter,
|
||||
authLimiter,
|
||||
oauthAuthLimiter,
|
||||
oauthTokenLimiter,
|
||||
oauthClientLimiter
|
||||
};
|
Reference in New Issue
Block a user