tvbox支持根据用户细分

This commit is contained in:
mtvpls
2026-02-25 11:56:27 +08:00
parent 6a494f8a1b
commit 0402828c4c
16 changed files with 583 additions and 78 deletions
@@ -30,9 +30,27 @@ export async function GET(
// 验证 TVBox Token(从路径中获取)
const requestToken = params.token;
const subscribeToken = process.env.TVBOX_SUBSCRIBE_TOKEN;
const globalToken = process.env.TVBOX_SUBSCRIBE_TOKEN;
if (!subscribeToken || requestToken !== subscribeToken) {
// 检查是否是全局token或用户token
let isValidToken = false;
if (globalToken && requestToken === globalToken) {
// 全局token
isValidToken = true;
} else {
// 检查是否是用户token
const { db } = await import('@/lib/db');
const username = await db.getUsernameByTvboxToken(requestToken);
if (username) {
// 检查用户是否被封禁
const userInfo = await db.getUserInfoV2(username);
if (userInfo && !userInfo.banned) {
isValidToken = true;
}
}
}
if (!isValidToken) {
return NextResponse.json(
{
code: 401,
+20 -4
View File
@@ -22,13 +22,29 @@ export async function GET(
try {
const { searchParams } = new URL(request.url);
// 双重验证:TVBox Token 或 用户登录
// 双重验证:TVBox Token(全局或用户) 或 用户登录
const requestToken = params.token;
const subscribeToken = process.env.TVBOX_SUBSCRIBE_TOKEN;
const globalToken = process.env.TVBOX_SUBSCRIBE_TOKEN;
const authInfo = getAuthInfoFromCookie(request);
// 验证 TVBox Token
const hasValidToken = subscribeToken && requestToken === subscribeToken;
// 验证 TVBox Token(全局token或用户token
let hasValidToken = false;
if (globalToken && requestToken === globalToken) {
// 全局token
hasValidToken = true;
} else {
// 检查是否是用户token
const { db } = await import('@/lib/db');
const username = await db.getUsernameByTvboxToken(requestToken);
if (username) {
// 检查用户是否被封禁
const userInfo = await db.getUserInfoV2(username);
if (userInfo && !userInfo.banned) {
hasValidToken = true;
}
}
}
// 验证用户登录
const hasValidAuth = authInfo && authInfo.username;