mirror of
https://github.com/lyz05/danmaku.git
synced 2026-02-02 17:59:53 +08:00
fix: 修改速率限制
This commit is contained in:
13
app.js
13
app.js
@@ -3,7 +3,6 @@ const express = require('express');
|
||||
const path = require('path');
|
||||
const cookieParser = require('cookie-parser');
|
||||
const logger = require('morgan');
|
||||
const rateLimit = require('express-rate-limit');
|
||||
|
||||
// 引入环境变量
|
||||
require('dotenv')
|
||||
@@ -34,18 +33,6 @@ app.use('/assets', [
|
||||
express.static(__dirname + '/node_modules/bootstrap/dist/'),
|
||||
]);
|
||||
|
||||
// Rate Limit
|
||||
const allowlist = ['::1', '::ffff:127.0.0.1'];
|
||||
const apiLimiter = rateLimit({
|
||||
windowMs: 60 * 1000, // 1 minute
|
||||
max: 6, // limit each IP to 6 requests per windowMs
|
||||
message: 'Too many requests from this IP, please try again after an minute',
|
||||
standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers
|
||||
skipFailedRequests: true, // Don't count failed requests (status >= 400)
|
||||
skip: (request, response) => allowlist.includes(request.ip),
|
||||
});
|
||||
app.use(apiLimiter);
|
||||
|
||||
// 加载路由
|
||||
app.use('/', danmakuRouter);
|
||||
app.use('/ipinfo', ipinfoRouter);
|
||||
|
||||
@@ -12,6 +12,18 @@ const {
|
||||
const list = [bilibili, mgtv, tencentvideo, youku, iqiyi];
|
||||
const memory = require("../utils/memory");
|
||||
const leancloud = require("../utils/leancloud");
|
||||
const rateLimit = require('express-rate-limit');
|
||||
|
||||
// 访问频率限制
|
||||
const allowlist = ['::1', '::ffff:127.0.0.1'];
|
||||
const apiLimiter = rateLimit({
|
||||
windowMs: 5 * 60 * 1000, // 5 minute
|
||||
max: 5, // limit each IP to 5 requests per windowMs
|
||||
message: 'Too many requests from this IP, please try again later',
|
||||
standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers
|
||||
skipFailedRequests: true, // Don't count failed requests (status >= 400)
|
||||
skip: (request, response) => allowlist.includes(request.ip),
|
||||
});
|
||||
|
||||
async function build_response(url, req) {
|
||||
for (let q = new URLSearchParams(URL.parse(url).query);q.has("url");) {
|
||||
@@ -55,7 +67,7 @@ async function build_response(url, req) {
|
||||
}
|
||||
|
||||
/* GET home page. */
|
||||
router.get("/", async function (req, res) {
|
||||
router.get("/", apiLimiter, async function (req, res) {
|
||||
leancloud.add("DanmakuAccess", {
|
||||
remoteIP: req.ip,
|
||||
url: req.query.url,
|
||||
|
||||
Reference in New Issue
Block a user