diff --git a/frontend/src/components/MainPage.vue b/frontend/src/components/MainPage.vue
index 604b6da41545ffe53bba87fa60ad4006e9b84a7f..ac28dd0d6e03d5cfbd2bbf5216b4ac30888994de 100644
--- a/frontend/src/components/MainPage.vue
+++ b/frontend/src/components/MainPage.vue
@@ -11,6 +11,8 @@ export default {
this.userId = localStorage.getItem('userId')
this.getAllTodos()
+
+ setInterval(this.validateSession, 60000)
},
data() {
return {
@@ -35,6 +37,20 @@ export default {
}
},
methods: {
+ async validateSession(){
+ let url = "http://localhost:9876/user/validateSession"
+
+ const response = await fetch(url, {
+ method: 'GET',
+ credentials: 'include'
+ })
+
+ if(response.status === 401){
+ localStorage.removeItem("userId")
+ localStorage.removeItem("isLoggedIn")
+ await this.$router.push({ name: 'login' })
+ }
+ },
showDetails(item) {
this.selectedItem = item;
this.showDetailsModal = true;
diff --git a/src/main/java/com/cloudcomputing/todo/controller/UserController.java b/src/main/java/com/cloudcomputing/todo/controller/UserController.java
index 55620b60d855e9270b7b0129f04e5f1d0c38cce9..e9b55f0af0094d870b08558debcb984d903e5aa4 100644
--- a/src/main/java/com/cloudcomputing/todo/controller/UserController.java
+++ b/src/main/java/com/cloudcomputing/todo/controller/UserController.java
@@ -4,7 +4,6 @@ import com.cloudcomputing.todo.dto.TodoDTO;
import com.cloudcomputing.todo.dto.UserDTO;
import com.cloudcomputing.todo.service.UserService;
import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -82,7 +81,7 @@ public class UserController {
return new ResponseEntity<>(null, HttpStatus.UNAUTHORIZED);
}
- @PatchMapping("setTodoComplete")
+ @PatchMapping("/setTodoComplete")
public ResponseEntity<List<TodoDTO>> setTodoComplete(HttpServletRequest request, @RequestParam String userId, @RequestParam String todoId) {
if(userService.validateSession(request)){
List<TodoDTO> todos = userService.setTodoComplete(userId, todoId);
@@ -91,4 +90,13 @@ public class UserController {
return new ResponseEntity<>(null, HttpStatus.UNAUTHORIZED);
}
+
+ @GetMapping("/validateSession")
+ public ResponseEntity<Boolean> validateSession(HttpServletRequest request) {
+ if(userService.validateSession(request)){
+ return new ResponseEntity<>(true, HttpStatus.OK);
+ }
+
+ return new ResponseEntity<>(false, HttpStatus.UNAUTHORIZED);
+ }
}