Merge pull request #188 from sensebox/fix-refreshToken
Fix refresh token
This commit is contained in:
		
						commit
						72b6bf47ef
					
				
							
								
								
									
										22
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								package.json
									
									
									
									
									
								
							| @ -10,37 +10,37 @@ | |||||||
|     "@blockly/plugin-typed-variable-modal": "^4.0.5", |     "@blockly/plugin-typed-variable-modal": "^4.0.5", | ||||||
|     "@blockly/workspace-backpack": "^2.0.12", |     "@blockly/workspace-backpack": "^2.0.12", | ||||||
|     "@blockly/zoom-to-fit": "^2.0.14", |     "@blockly/zoom-to-fit": "^2.0.14", | ||||||
|     "@fortawesome/fontawesome-svg-core": "^1.2.30", |     "@fortawesome/fontawesome-svg-core": "^1.2.36", | ||||||
|     "@fortawesome/free-solid-svg-icons": "^5.14.0", |     "@fortawesome/free-solid-svg-icons": "^5.15.4", | ||||||
|     "@fortawesome/react-fontawesome": "^0.1.11", |     "@fortawesome/react-fontawesome": "^0.1.19", | ||||||
|     "@material-ui/core": "^4.11.0", |     "@material-ui/core": "^4.12.4", | ||||||
|     "@monaco-editor/react": "^4.3.1", |     "@monaco-editor/react": "^4.3.1", | ||||||
|     "@testing-library/jest-dom": "^5.16.1", |     "@testing-library/jest-dom": "^5.16.1", | ||||||
|     "@testing-library/react": "^12.1.2", |     "@testing-library/react": "^12.1.2", | ||||||
|     "@testing-library/user-event": "^7.2.1", |     "@testing-library/user-event": "^7.2.1", | ||||||
|     "axios": "^0.22.0", |     "axios": "^0.22.0", | ||||||
|     "blockly": "^8.0.3", |     "blockly": "^8.0.3", | ||||||
|     "file-saver": "^2.0.2", |     "file-saver": "^2.0.5", | ||||||
|     "markdown-it": "^12.3.2", |     "markdown-it": "^12.3.2", | ||||||
|     "mnemonic-id": "^3.2.7", |     "mnemonic-id": "^3.2.7", | ||||||
|     "moment": "^2.28.0", |     "moment": "^2.29.4", | ||||||
|     "prismjs": "^1.27.0", |     "prismjs": "^1.27.0", | ||||||
|     "qrcode.react": "^3.1.0", |     "qrcode.react": "^3.1.0", | ||||||
|     "react": "^17.0.2", |     "react": "^17.0.2", | ||||||
|     "react-cookie-consent": "^7.2.1", |     "react-cookie-consent": "^7.2.1", | ||||||
|     "react-dom": "^17.0.2", |     "react-dom": "^17.0.2", | ||||||
|     "react-markdown": "^8.0.0", |     "react-markdown": "^8.0.0", | ||||||
|     "react-markdown-editor-lite": "^1.3.2", |     "react-markdown-editor-lite": "^1.3.3", | ||||||
|     "react-mde": "^11.5.0", |     "react-mde": "^11.5.0", | ||||||
|     "react-rating-stars-component": "^2.2.0", |     "react-rating-stars-component": "^2.2.0", | ||||||
|     "react-redux": "^7.2.4", |     "react-redux": "^7.2.9", | ||||||
|     "react-router-dom": "^5.2.0", |     "react-router-dom": "^5.3.3", | ||||||
|     "react-scripts": "^5.0.0", |     "react-scripts": "^5.0.0", | ||||||
|     "react-share": "^4.4.0", |     "react-share": "^4.4.0", | ||||||
|     "react-spinners": "^0.13.3", |     "react-spinners": "^0.13.3", | ||||||
|     "reactour": "^1.18.7", |     "reactour": "^1.18.7", | ||||||
|     "redux": "^4.0.5", |     "redux": "^4.2.0", | ||||||
|     "redux-thunk": "^2.3.0", |     "redux-thunk": "^2.4.1", | ||||||
|     "remark-gemoji": "^7.0.1", |     "remark-gemoji": "^7.0.1", | ||||||
|     "remark-gfm": "^3.0.1", |     "remark-gfm": "^3.0.1", | ||||||
|     "styled-components": "^4.4.1", |     "styled-components": "^4.4.1", | ||||||
|  | |||||||
| @ -63,63 +63,56 @@ export const loadUser = () => (dispatch) => { | |||||||
|     }); |     }); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| var logoutTimerId; |  | ||||||
| const timeToLogout = 14.9 * 60 * 1000; // nearly 15 minutes corresponding to the API
 |  | ||||||
| 
 |  | ||||||
| // Login user
 | // Login user
 | ||||||
| export const login = | export const login = | ||||||
|   ({ email, password }) => |   ({ email, password }) => | ||||||
|   (dispatch) => { |     (dispatch) => { | ||||||
|     dispatch({ |       dispatch({ | ||||||
|       type: USER_LOADING, |         type: USER_LOADING, | ||||||
|     }); |  | ||||||
|     // Headers
 |  | ||||||
|     const config = { |  | ||||||
|       headers: { |  | ||||||
|         "Content-Type": "application/json", |  | ||||||
|       }, |  | ||||||
|     }; |  | ||||||
|     // Request Body
 |  | ||||||
|     const body = JSON.stringify({ email, password }); |  | ||||||
|     axios |  | ||||||
|       .post(`${process.env.REACT_APP_BLOCKLY_API}/user`, body, config) |  | ||||||
|       .then((res) => { |  | ||||||
|         // Logout automatically if refreshToken "expired"
 |  | ||||||
|         const logoutTimer = () => |  | ||||||
|           setTimeout(() => dispatch(logout()), timeToLogout); |  | ||||||
|         logoutTimerId = logoutTimer(); |  | ||||||
|         dispatch(setLanguage(res.data.user.language)); |  | ||||||
|         dispatch({ |  | ||||||
|           type: LOGIN_SUCCESS, |  | ||||||
|           payload: res.data, |  | ||||||
|         }); |  | ||||||
|         dispatch({ |  | ||||||
|           type: GET_STATUS, |  | ||||||
|           payload: res.data.user.status, |  | ||||||
|         }); |  | ||||||
|         dispatch(returnSuccess(res.data.message, res.status, "LOGIN_SUCCESS")); |  | ||||||
|       }) |  | ||||||
|       .catch((err) => { |  | ||||||
|         dispatch( |  | ||||||
|           returnErrors( |  | ||||||
|             err.response.data.message, |  | ||||||
|             err.response.status, |  | ||||||
|             "LOGIN_FAIL" |  | ||||||
|           ) |  | ||||||
|         ); |  | ||||||
|         dispatch({ |  | ||||||
|           type: LOGIN_FAIL, |  | ||||||
|         }); |  | ||||||
|         var status = []; |  | ||||||
|         if (window.localStorage.getItem("status")) { |  | ||||||
|           status = JSON.parse(window.localStorage.getItem("status")); |  | ||||||
|         } |  | ||||||
|         dispatch({ |  | ||||||
|           type: GET_STATUS, |  | ||||||
|           payload: status, |  | ||||||
|         }); |  | ||||||
|       }); |       }); | ||||||
|   }; |       // Headers
 | ||||||
|  |       const config = { | ||||||
|  |         headers: { | ||||||
|  |           "Content-Type": "application/json", | ||||||
|  |         }, | ||||||
|  |       }; | ||||||
|  |       // Request Body
 | ||||||
|  |       const body = JSON.stringify({ email, password }); | ||||||
|  |       axios | ||||||
|  |         .post(`${process.env.REACT_APP_BLOCKLY_API}/user`, body, config) | ||||||
|  |         .then((res) => { | ||||||
|  |           dispatch(setLanguage(res.data.user.language)); | ||||||
|  |           dispatch({ | ||||||
|  |             type: LOGIN_SUCCESS, | ||||||
|  |             payload: res.data, | ||||||
|  |           }); | ||||||
|  |           dispatch({ | ||||||
|  |             type: GET_STATUS, | ||||||
|  |             payload: res.data.user.status, | ||||||
|  |           }); | ||||||
|  |           dispatch(returnSuccess(res.data.message, res.status, "LOGIN_SUCCESS")); | ||||||
|  |         }) | ||||||
|  |         .catch((err) => { | ||||||
|  |           dispatch( | ||||||
|  |             returnErrors( | ||||||
|  |               err.response.data.message, | ||||||
|  |               err.response.status, | ||||||
|  |               "LOGIN_FAIL" | ||||||
|  |             ) | ||||||
|  |           ); | ||||||
|  |           dispatch({ | ||||||
|  |             type: LOGIN_FAIL, | ||||||
|  |           }); | ||||||
|  |           var status = []; | ||||||
|  |           if (window.localStorage.getItem("status")) { | ||||||
|  |             status = JSON.parse(window.localStorage.getItem("status")); | ||||||
|  |           } | ||||||
|  |           dispatch({ | ||||||
|  |             type: GET_STATUS, | ||||||
|  |             payload: status, | ||||||
|  |           }); | ||||||
|  |         }); | ||||||
|  |     }; | ||||||
| 
 | 
 | ||||||
| // Logout User
 | // Logout User
 | ||||||
| export const logout = () => (dispatch) => { | export const logout = () => (dispatch) => { | ||||||
| @ -144,7 +137,6 @@ export const logout = () => (dispatch) => { | |||||||
|       } |       } | ||||||
|       dispatch(setLanguage(locale)); |       dispatch(setLanguage(locale)); | ||||||
|       dispatch(returnSuccess(res.data.message, res.status, "LOGOUT_SUCCESS")); |       dispatch(returnSuccess(res.data.message, res.status, "LOGOUT_SUCCESS")); | ||||||
|       clearTimeout(logoutTimerId); |  | ||||||
|     }, |     }, | ||||||
|     error: (err) => { |     error: (err) => { | ||||||
|       dispatch( |       dispatch( | ||||||
| @ -165,7 +157,6 @@ export const logout = () => (dispatch) => { | |||||||
|         type: GET_STATUS, |         type: GET_STATUS, | ||||||
|         payload: status, |         payload: status, | ||||||
|       }); |       }); | ||||||
|       clearTimeout(logoutTimerId); |  | ||||||
|     }, |     }, | ||||||
|   }; |   }; | ||||||
|   axios |   axios | ||||||
| @ -222,10 +213,6 @@ export const authInterceptor = () => (dispatch, getState) => { | |||||||
|             }) |             }) | ||||||
|             .then((res) => { |             .then((res) => { | ||||||
|               if (res.status === 200) { |               if (res.status === 200) { | ||||||
|                 clearTimeout(logoutTimerId); |  | ||||||
|                 const logoutTimer = () => |  | ||||||
|                   setTimeout(() => dispatch(logout()), timeToLogout); |  | ||||||
|                 logoutTimerId = logoutTimer(); |  | ||||||
|                 dispatch({ |                 dispatch({ | ||||||
|                   type: REFRESH_TOKEN_SUCCESS, |                   type: REFRESH_TOKEN_SUCCESS, | ||||||
|                   payload: res.data, |                   payload: res.data, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user