Skip to content
Snippets Groups Projects
Commit 78ebfab1 authored by abdu's avatar abdu
Browse files

add session (in-)validation in frontend + controller endpoint

parent 81016c29
No related branches found
No related tags found
No related merge requests found
......@@ -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;
......
......@@ -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);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment