diff options
Diffstat (limited to 'src/components/header/authdialog')
| -rw-r--r-- | src/components/header/authdialog/LoginForm.tsx | 2 | ||||
| -rw-r--r-- | src/components/header/authdialog/register.ts | 32 |
2 files changed, 17 insertions, 17 deletions
diff --git a/src/components/header/authdialog/LoginForm.tsx b/src/components/header/authdialog/LoginForm.tsx index 913ca66..1dc2df4 100644 --- a/src/components/header/authdialog/LoginForm.tsx +++ b/src/components/header/authdialog/LoginForm.tsx @@ -54,7 +54,7 @@ export default function LoginForm({ redirectTo }: { redirectTo?: string }) { }); if (!meRes.ok) throw new Error('Failed to fetch user'); const meData = await meRes.json(); - setUser(meData); + setUser(meData.authenticated ? meData.user : null); if (redirectTo) router.push(redirectTo); } } catch (err) { diff --git a/src/components/header/authdialog/register.ts b/src/components/header/authdialog/register.ts index 46a59f2..3098df7 100644 --- a/src/components/header/authdialog/register.ts +++ b/src/components/header/authdialog/register.ts @@ -45,14 +45,18 @@ export const registerUser = async ( try { const res = await fetch(`${API_URL}/api/auth/register`, { method: 'POST', - headers: { 'Content-Type': 'application/json' }, + headers: { + 'Content-Type': 'application/json', + }, body: JSON.stringify({ username, email, password }), credentials: 'include', }); if (!res.ok) { - const data = await res.json(); - const { field, message } = data.detail || {}; + const errorData = await res.json(); + + const { field, message } = errorData.detail || {}; + return { data: null, error: field @@ -61,20 +65,16 @@ export const registerUser = async ( }; } - const meRes = await fetch(`${API_URL}/api/me`, { - credentials: 'include', - }); - - if (!meRes.ok) { - throw new Error( - 'Не удалось получить данные пользователя после регистрации', - ); - } - - const meData = await meRes.json(); + const user = await res.json(); - return { data: meData, error: null }; + return { + data: user, + error: null, + }; } catch (err: any) { - return { data: null, error: { general: err.message } }; + return { + data: null, + error: { general: err.message }, + }; } }; |
