mirror of
https://github.com/KuekHaoYang/KVideo.git
synced 2026-08-22 04:03:42 +08:00
feat: Implement settings password protection with a dedicated gate, management UI, and API integration.
This commit is contained in:
+11
-1
@@ -8,12 +8,14 @@ import { NextRequest, NextResponse } from 'next/server';
|
||||
export const runtime = 'edge';
|
||||
|
||||
const ACCESS_PASSWORD = process.env.ACCESS_PASSWORD || '';
|
||||
const SETTINGS_PASSWORD = process.env.SETTINGS_PASSWORD || '';
|
||||
const PERSIST_PASSWORD = process.env.PERSIST_PASSWORD !== 'false';
|
||||
const SUBSCRIPTION_SOURCES = process.env.SUBSCRIPTION_SOURCES || process.env.NEXT_PUBLIC_SUBSCRIPTION_SOURCES || '';
|
||||
|
||||
export async function GET() {
|
||||
return NextResponse.json({
|
||||
hasEnvPassword: ACCESS_PASSWORD.length > 0,
|
||||
hasEnvSettingsPassword: SETTINGS_PASSWORD.length > 0,
|
||||
persistPassword: PERSIST_PASSWORD,
|
||||
subscriptionSources: SUBSCRIPTION_SOURCES,
|
||||
});
|
||||
@@ -21,7 +23,15 @@ export async function GET() {
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
const { password } = await request.json();
|
||||
const { password, type } = await request.json();
|
||||
|
||||
if (type === 'settings') {
|
||||
if (!SETTINGS_PASSWORD) {
|
||||
return NextResponse.json({ valid: false, message: 'No env settings password set' });
|
||||
}
|
||||
const valid = password === SETTINGS_PASSWORD;
|
||||
return NextResponse.json({ valid });
|
||||
}
|
||||
|
||||
if (!ACCESS_PASSWORD) {
|
||||
return NextResponse.json({ valid: false, message: 'No env password set' });
|
||||
|
||||
Reference in New Issue
Block a user