5_8
This commit is contained in:
parent
493d7579b1
commit
933c8157cf
@ -5,20 +5,22 @@ class AuthService extends ApiService {
|
|||||||
super('http://localhost:8081/users'); // Указываем базовый URL для аутентификации
|
super('http://localhost:8081/users'); // Указываем базовый URL для аутентификации
|
||||||
}
|
}
|
||||||
|
|
||||||
async registerUser(userInfo) {
|
|
||||||
return this.create(userInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
async loginUser(credentials) {
|
async loginUser(credentials) {
|
||||||
const users = await this.getAll(); // Получаем всех пользователей
|
const users = await this.getAll();
|
||||||
// eslint-disable-next-line max-len
|
// eslint-disable-next-line max-len
|
||||||
const user = users.find((u) => u.email === credentials.email && u.password === credentials.password && u.name === credentials.name);
|
const user = users.find((u) => u.email === credentials.email && u.password === credentials.password);
|
||||||
if (!user) {
|
if (!user) {
|
||||||
throw new Error('Invalid email or password');
|
throw new Error('Invalid email or password');
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async registerUser(userData) {
|
||||||
|
// Вероятно вы хотите здесь сохранять пользователя в базе данных?
|
||||||
|
const registeredUser = await this.create(userData);
|
||||||
|
return registeredUser;
|
||||||
|
}
|
||||||
|
|
||||||
async setRole(userId, role) {
|
async setRole(userId, role) {
|
||||||
return this.update(userId, { role });
|
return this.update(userId, { role });
|
||||||
}
|
}
|
||||||
|
@ -8,9 +8,10 @@ const initialState = {
|
|||||||
const AuthReducer = (state, action) => {
|
const AuthReducer = (state, action) => {
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case 'LOGIN':
|
case 'LOGIN':
|
||||||
|
case 'REGISTER':
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
user: action.payload, // Предполагается, что payload содержит данные пользователя.
|
user: action.payload,
|
||||||
};
|
};
|
||||||
case 'LOGOUT':
|
case 'LOGOUT':
|
||||||
return {
|
return {
|
||||||
|
@ -15,31 +15,31 @@ const LoginForm = () => {
|
|||||||
|
|
||||||
const handleSubmit = async (e) => {
|
const handleSubmit = async (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const { user, token } = await AuthService.loginUser(credentials);
|
try {
|
||||||
localStorage.setItem('auth_token', token); // Сохраняем токен в localStorage
|
const user = await AuthService.loginUser(credentials);
|
||||||
dispatch({
|
dispatch({
|
||||||
type: 'LOGIN',
|
type: 'LOGIN',
|
||||||
payload: { user, token }, // Предполагается, что payload содержит объект с user и token
|
payload: user,
|
||||||
});
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Login error', error);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleRegister = async (e) => {
|
const handleRegister = async (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
try {
|
try {
|
||||||
const { user, token } = await AuthService.registerUser({ ...credentials, role: 'user' });
|
const user = await AuthService.registerUser({ ...credentials, role: 'user' });
|
||||||
localStorage.setItem('auth_token', token);
|
|
||||||
dispatch({
|
dispatch({
|
||||||
type: 'REGISTER',
|
type: 'REGISTER',
|
||||||
payload: { user, token }, // Предполагается, что payload содержит объект с user и token
|
payload: user,
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Register error', error);
|
console.error('Register error', error);
|
||||||
// Обработать ошибки регистрации
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleLogout = () => {
|
const handleLogout = () => {
|
||||||
localStorage.removeItem('auth_token');
|
|
||||||
dispatch({ type: 'LOGOUT' });
|
dispatch({ type: 'LOGOUT' });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user