12345678910111213141516171819202122232425262728293031323334 |
- import { jwtDecode } from '../helpers'
- export const authReducer = (state, { type, token, remember }) => {
- if (!state) {
- if (localStorage.authToken || sessionStorage.authToken) {
- type = 'AUTH-LOGIN'
- token = localStorage.authToken || sessionStorage.authToken
- } else state = {}
- }
- if (type === 'AUTH-LOGIN') {
- remember ?
- localStorage.setItem('authToken', token) :
- sessionStorage.setItem('authToken', token)
- let payload = jwtDecode(token)
- if (typeof payload === 'object') {
- return {
- ...state,
- token,
- payload
- }
- } else return state
- }
- if (type === 'AUTH-LOGOUT') {
- localStorage.removeItem('authToken')
- sessionStorage.removeItem('authToken')
- return {}
- }
- return state
- }
|