summaryrefslogtreecommitdiff
path: root/src/components/header/authdialog/register.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/header/authdialog/register.ts')
-rw-r--r--src/components/header/authdialog/register.ts39
1 files changed, 11 insertions, 28 deletions
diff --git a/src/components/header/authdialog/register.ts b/src/components/header/authdialog/register.ts
index ba8bceb..46a59f2 100644
--- a/src/components/header/authdialog/register.ts
+++ b/src/components/header/authdialog/register.ts
@@ -1,4 +1,3 @@
-// register.ts
export const validate = (
username: string,
email: string,
@@ -36,20 +35,23 @@ export const validate = (
return newErrors;
};
+const API_URL = process.env.NEXT_PUBLIC_API_URL;
+
export const registerUser = async (
username: string,
email: string,
password: string,
) => {
try {
- const res = await fetch('http://localhost:8000/api/auth/register', {
+ const res = await fetch(`${API_URL}/api/auth/register`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, email, password }),
+ credentials: 'include',
});
- const data = await res.json();
if (!res.ok) {
+ const data = await res.json();
const { field, message } = data.detail || {};
return {
data: null,
@@ -59,35 +61,16 @@ export const registerUser = async (
};
}
- const body = new URLSearchParams();
- body.append('username', username);
- body.append('password', password);
-
- const loginRes = await fetch('http://localhost:8000/api/auth/login', {
- method: 'POST',
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
- body: body.toString(),
+ const meRes = await fetch(`${API_URL}/api/me`, {
+ credentials: 'include',
});
- const loginData = await loginRes.json();
-
- if (!loginRes.ok) {
- return {
- data: null,
- error: {
- general:
- loginData.detail || 'Ошибка входа после регистрации',
- },
- };
+ if (!meRes.ok) {
+ throw new Error(
+ 'Не удалось получить данные пользователя после регистрации',
+ );
}
- localStorage.setItem('token', loginData.access_token);
- localStorage.setItem('refresh_token', loginData.refresh_token);
-
- const meRes = await fetch('http://localhost:8000/api/me', {
- headers: { Authorization: `Bearer ${loginData.access_token}` },
- });
-
const meData = await meRes.json();
return { data: meData, error: null };