simle-chat

Форк
0
41 строка · 1.1 Кб
1
import { useState } from 'react';
2

3
import AuthContext from '../../contexts/index';
4

5
const AuthProvider = ({ children }) => {
6
  const currentUser = JSON.parse(localStorage.getItem('user'));
7
  const [user, setUser] = useState(currentUser
8
    ? { username: currentUser.username, token: currentUser.token }
9
    : null);
10
  console.log('AuthProvider -', currentUser);
11

12
  const logIn = (data) => {
13
    localStorage.setItem('user', JSON.stringify(data));
14
    setUser({ username: data.username, token: data.token });
15
  };
16

17
  const logOut = () => {
18
    localStorage.removeItem('user');
19
    setUser(null);
20
  };
21

22
  const getAuthHeader = () => {
23
    const localUser = JSON.parse(localStorage.getItem('user'));
24
    if (localUser && localUser.token) {
25
      return { Authorization: `Bearer ${localUser.token}` };
26
    }
27
    return {};
28
  };
29

30
  return (
31
    // eslint-disable-next-line react/jsx-no-constructed-context-values
32
    <AuthContext.Provider value={{
33
      user, logIn, logOut, getAuthHeader,
34
    }}
35
    >
36
      {children}
37
    </AuthContext.Provider>
38
  );
39
};
40

41
export default AuthProvider;
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.