Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //USER SERVICE
- function login(username, password) {
- const requestOptions = {
- method: "POST",
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
- body:
- "username=" + username + "&password=" + password + "&grant_type=password"
- };
- return fetch(`${Config.apiUrl}/Token`, requestOptions)
- .then(handleLoginResponse)
- .then(user => {
- // login successful if there's a jwt token in the response
- if (user.access_token) {
- // store user details and jwt token in local storage to keep user logged in between page refreshes
- localStorage.setItem("user", JSON.stringify(user));
- }
- return user;
- })
- .catch(error => {
- return { error };
- });
- }
- //AUTH SAGA
- export function* login(action) {
- const { username, password } = action.payload;
- const response = userService.login(username, password);
- console.log(response);
- if (response.error) {
- yield put({ type: actions.LOGIN_FAILURE, payload: response.error });
- } else {
- yield put(actions.loginUserSuccessful());
- yield delay(1000);
- // yield history.push("/");
- }
- }
- //AUTH ACTIONS
- export function loginUserSuccessful() {
- return { type: LOGIN_SUCCESS };
- }
- //AUTH REDUCER
- export function authentication(state = initialState, action) {
- const { payload } = action;
- switch (action.type) {
- case actions.LOGIN_SUCCESS:
- return {
- loggedIn: true,
- user: action.user
- };
- case actions.LOGIN_FAILURE:
- return state;
- case actions.USERS_LOGOUT:
- return state;
- case actions.LOGIN_TOGGLE_MODAL:
- const { isLoginModalOpen } = payload;
- return {
- ...state,
- isLoginModalOpen
- };
- default:
- return state;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement