feat: auth error handling

This commit is contained in:
Timothy J. Baek 2023-11-20 16:22:43 -08:00
parent 6a2c1600f5
commit a2e74c59b9
4 changed files with 31 additions and 15 deletions

View file

@ -1,10 +1,12 @@
from dotenv import load_dotenv, find_dotenv
from pymongo import MongoClient
from constants import ERROR_MESSAGES
from secrets import token_bytes
from base64 import b64encode
import os
load_dotenv(find_dotenv())
####################################
@ -35,23 +37,30 @@ WEBUI_VERSION = os.environ.get("WEBUI_VERSION", "v1.0.0-alpha.11")
# WEBUI_AUTH
####################################
WEBUI_AUTH = True if os.environ.get("WEBUI_AUTH", "TRUE") == "TRUE" else False
if WEBUI_AUTH:
####################################
# WEBUI_DB
####################################
####################################
# WEBUI_DB
####################################
WEBUI_DB_URL = os.environ.get(
"WEBUI_DB_URL", "mongodb://root:root@localhost:27017/"
)
DB_CLIENT = MongoClient(f"{WEBUI_DB_URL}?authSource=admin")
DB = DB_CLIENT["ollama-webui"]
WEBUI_DB_URL = os.environ.get("WEBUI_DB_URL", "mongodb://root:root@localhost:27017/")
####################################
# WEBUI_JWT_SECRET_KEY
####################################
if WEBUI_AUTH and WEBUI_DB_URL == "":
raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND)
WEBUI_JWT_SECRET_KEY = os.environ.get("WEBUI_JWT_SECRET_KEY", "t0p-s3cr3t")
DB_CLIENT = MongoClient(f"{WEBUI_DB_URL}?authSource=admin")
DB = DB_CLIENT["ollama-webui"]
####################################
# WEBUI_JWT_SECRET_KEY
####################################
WEBUI_JWT_SECRET_KEY = os.environ.get("WEBUI_JWT_SECRET_KEY", "t0p-s3cr3t")
if WEBUI_AUTH and WEBUI_JWT_SECRET_KEY == "":
raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND)

View file

@ -6,7 +6,11 @@ class MESSAGES(str, Enum):
class ERROR_MESSAGES(str, Enum):
def __str__(self) -> str:
return super().__str__()
DEFAULT = lambda err="": f"Something went wrong :/\n{err if err else ''}"
ENV_VAR_NOT_FOUND = "Essential environment variable not found. Terminating now."
INVALID_TOKEN = (
"Your session has expired or the token is invalid. Please sign in again."
)

View file

@ -330,7 +330,7 @@
/>
{:else}
<img
src={$user.profile_image_url}
src={$user ? $user.profile_image_url : '/user.png'}
class=" max-w-[28px] object-cover rounded-full"
alt="User profile"
/>

View file

@ -1,6 +1,9 @@
<script lang="ts">
import { v4 as uuidv4 } from 'uuid';
import fileSaver from 'file-saver';
const { saveAs } = fileSaver;
import { goto, invalidateAll } from '$app/navigation';
import { page } from '$app/stores';
import { user, db, chats, showSettings, chatId } from '$lib/stores';
@ -141,7 +144,7 @@
const exportChatHistory = async () => {
await chats.set(await $db.getAllFromIndex('chats', 'timestamp'));
let blob = new Blob([JSON.stringify(chats)], { type: 'application/json' });
let blob = new Blob([JSON.stringify($chats)], { type: 'application/json' });
saveAs(blob, `chat-export-${Date.now()}.json`);
};