feat: close #663 allow disable user api key input

This commit is contained in:
Yidadaa
2023-05-03 23:49:33 +08:00
parent b1ea26467d
commit 074bd9f045
8 changed files with 57 additions and 23 deletions

View File

@@ -8,6 +8,7 @@ const serverConfig = getServerSideConfig();
// 警告!不要在这里写入任何敏感信息!
const DANGER_CONFIG = {
needCode: serverConfig.needCode,
hideUserApiKey: serverConfig.hideUserApiKey,
};
declare global {
@@ -15,9 +16,7 @@ declare global {
}
export async function POST() {
return NextResponse.json({
needCode: serverConfig.needCode,
});
return NextResponse.json(DANGER_CONFIG);
}
export const runtime = "edge";

View File

@@ -466,19 +466,21 @@ export function Settings() {
<></>
)}
<ListItem
title={Locale.Settings.Token.Title}
subTitle={Locale.Settings.Token.SubTitle}
>
<PasswordInput
value={accessStore.token}
type="text"
placeholder={Locale.Settings.Token.Placeholder}
onChange={(e) => {
accessStore.updateToken(e.currentTarget.value);
}}
/>
</ListItem>
{!accessStore.hideUserApiKey ? (
<ListItem
title={Locale.Settings.Token.Title}
subTitle={Locale.Settings.Token.SubTitle}
>
<PasswordInput
value={accessStore.token}
type="text"
placeholder={Locale.Settings.Token.Placeholder}
onChange={(e) => {
accessStore.updateToken(e.currentTarget.value);
}}
/>
</ListItem>
) : null}
<ListItem
title={Locale.Settings.Usage.Title}

View File

@@ -163,6 +163,7 @@ export function SideBar(props: { className?: string }) {
onClick={() => {
if (config.dontShowMaskSplashScreen) {
chatStore.newSession();
navigate(Path.Chat);
} else {
navigate(Path.NewChat);
}

View File

@@ -7,6 +7,7 @@ declare global {
CODE?: string;
PROXY_URL?: string;
VERCEL?: string;
HIDE_USER_API_KEY?: string; // disable user's api key input
}
}
}
@@ -38,5 +39,6 @@ export const getServerSideConfig = () => {
needCode: ACCESS_CODES.size > 0,
proxyUrl: process.env.PROXY_URL,
isVercel: !!process.env.VERCEL,
hideUserApiKey: !!process.env.HIDE_USER_API_KEY,
};
};

View File

@@ -8,6 +8,7 @@ export interface AccessControlStore {
token: string;
needCode: boolean;
hideUserApiKey: boolean;
openaiUrl: string;
updateToken: (_: string) => void;
@@ -25,6 +26,7 @@ export const useAccessStore = create<AccessControlStore>()(
token: "",
accessCode: "",
needCode: true,
hideUserApiKey: false,
openaiUrl: "/api/openai/",
enabledAccessControl() {
@@ -55,6 +57,10 @@ export const useAccessStore = create<AccessControlStore>()(
.then((res: DangerConfig) => {
console.log("[Config] got config from server", res);
set(() => ({ ...res }));
if ((res as any).botHello) {
BOT_HELLO.content = (res as any).botHello;
}
})
.catch(() => {
console.error("[Config] failed to fetch config");