치지직 앱으로 연동하고, 연동 확인된 ID만 접속할 수 있도록 수정, 개발용으로는 채널ID를 수동으로 접속할 수 있도록 변경.
최초 추천 고정 배치 추가.
This commit is contained in:
46
lib/auth/mode.ts
Normal file
46
lib/auth/mode.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
/**
|
||||
* 개발: 채널 ID 입장 + 치지직 로그인 모두 허용
|
||||
* 릴리즈(production): 치지직 로그인(세션)으로만 채널 룸 입장
|
||||
*
|
||||
* 강제 오버라이드:
|
||||
* - DRINKMARBLE_ALLOW_CHANNEL_ID_JOIN=true → production에서도 채널 ID 입장 허용
|
||||
* - DRINKMARBLE_REQUIRE_CHZZK_LOGIN=true → development에서도 로그인 필수
|
||||
*/
|
||||
export function allowChannelIdJoin(): boolean {
|
||||
if (process.env.DRINKMARBLE_REQUIRE_CHZZK_LOGIN === 'true') return false;
|
||||
if (process.env.DRINKMARBLE_ALLOW_CHANNEL_ID_JOIN === 'true') return true;
|
||||
return process.env.NODE_ENV !== 'production';
|
||||
}
|
||||
|
||||
export function requireChzzkLoginForChannelRooms(): boolean {
|
||||
return !allowChannelIdJoin();
|
||||
}
|
||||
|
||||
export function isChzzkOAuthConfigured(): boolean {
|
||||
return Boolean(
|
||||
process.env.CHZZK_CLIENT_ID?.trim() &&
|
||||
process.env.CHZZK_CLIENT_SECRET?.trim() &&
|
||||
process.env.CHZZK_REDIRECT_URI?.trim(),
|
||||
);
|
||||
}
|
||||
|
||||
export function getChzzkOAuthConfig() {
|
||||
const clientId = process.env.CHZZK_CLIENT_ID?.trim() || '';
|
||||
const clientSecret = process.env.CHZZK_CLIENT_SECRET?.trim() || '';
|
||||
const redirectUri = process.env.CHZZK_REDIRECT_URI?.trim() || '';
|
||||
if (!clientId || !clientSecret || !redirectUri) {
|
||||
throw new Error(
|
||||
'치지직 OAuth 환경변수(CHZZK_CLIENT_ID, CHZZK_CLIENT_SECRET, CHZZK_REDIRECT_URI)가 필요합니다.',
|
||||
);
|
||||
}
|
||||
return { clientId, clientSecret, redirectUri };
|
||||
}
|
||||
|
||||
export function getAuthSessionSecret(): string {
|
||||
const explicit = process.env.AUTH_SESSION_SECRET?.trim();
|
||||
if (explicit) return explicit;
|
||||
const fallback = process.env.CHZZK_CLIENT_SECRET?.trim();
|
||||
if (fallback) return fallback;
|
||||
// 개발 전용 폴백 (production에서는 OAuth 설정이 있어야 함)
|
||||
return 'drinkmarble-dev-session-secret';
|
||||
}
|
||||
Reference in New Issue
Block a user