졸업과제/BackEnd
-
스프링 부트 구글 소셜로그인졸업과제/BackEnd 2023. 5. 19. 00:26
소셜로그인중 마지막으로 구글 소셜로그인을 정리!! 프로젝트 등록과 URl, Redirect URl은 다른 분들이 잘 정리한 것을 참고하시면 됩니다! Code 발급받기 https://developers.google.com/identity/protocols/oauth2/web-server?hl=ko 웹 서버 애플리케이션용 OAuth 2.0 사용 | Authorization | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 웹 서버 애플리케이션용 OAuth 2.0 사용 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분 developers.google.com 구글은 공식 문서가 복..
-
스프링 부트 네이버 소셜 로그인졸업과제/BackEnd 2023. 5. 12. 16:05
네이버 로그인 API 서비스 등록 https://developers.naver.com/apps/#/myapps/TCaKGyOMHwb8QZ0oSMyV/overview 애플리케이션 - NAVER Developers developers.naver.com 네이버 개발자센터에 들어가서 서비스를 하고자 하는 URL과 네이버 로그인 API를 호출할 URL들을 명시하여 준다. /naver_callback URL은 네이버 계정으로 회원가입할때 호출할 예정이고 /naver_login은 네이버 계정으로 로그인할때 호출할 예정이여서 2가지 URL을 등록해두었다. 제공 받고자 하는 목록을 선택하여 줄 수 있다. 우리 서비스는 사용자가 정보 제공을 동의하면 사용자로부터 인가를 받은 상태가 되어 네이버 서버가 사용자의 정보를 제공..
-
스프링 부트 카카오 소셜 로그인졸업과제/BackEnd 2023. 5. 10. 11:06
2주 동안 시험기간에 시험공부하고 이 소셜로그인을 구현하느라 블로그를 작성하지 못하였다. 마침내 소셜로그인을 구현을 완료해서 블로그를 작성할 수 있는 지금이 행복하다.. 잊지 않도록 블로그에 소셜로그인에 흐름을 정리해야겠다. 카카오 소셜 로그인 흐름 https://developers.kakao.com/docs/latest/ko/kakaologin/common Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 카카오 개발자센터에서 설명한 전반적인 흐름은 위의 사진과 같다. 하지만 내가 직접 코드를 작성해서 느낀 전반적인 소셜로그인의 흐름은 다음과 같..
-
Spring boot에서 Redirect시 model 변수 값 넘기기졸업과제/BackEnd 2023. 3. 31. 20:33
프로젝트를 진행하다 보니 특정 로직을 동작하고 나면 리다이렉트를 하는 경우의 코드가 상당히 많았다. 리다이렉트 하는 페이지에는 그냥 html만 뿌려주는 경우는 거의 없고 서버에서 model값으로 전달된 이미지나 데이터를 받아서 출력하는 경우가 많다. @PostMapping(value = "/post/detailPost/reply") public String replyWrite(HttpServletRequest request, Model model, RedirectAttributes attr) { String postId = request.getParameter("p_id"); long p_id = Long.parseLong(postId); Post post = postService.findPost(p_i..
-
Spring Security를 이용한 로그아웃 기능졸업과제/BackEnd 2023. 3. 31. 14:22
사용자가 로그아웃 기능 구현한 것을 정리하고자 한다. 로그아웃 ui는 로그인을 하고 있는 유저에게만 보여야 하기 때문에 로그인을 했는지 안 했는지 여부를 확인해야 한다. 로그인 세션 확인 @Controller public Class HomeController { @GetMapping(value = "/") public String Home(Model model) { Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if(principal == "anonymousUser"){ model.addAttribute("login_inform",false); }else{ model.addAttribute(..
-
Spring Security를 이용한 로그인 세션 확인.졸업과제/BackEnd 2023. 3. 30. 14:15
사용자가 로그인을 했는지 안 했는지를 서버 측에서 확인해야 한다. 로그인을 하지 않았는데 게시물을 작성 기능을 실행하거나 댓글을 작성하는 기능을 실행하면 서버에서는 로그인 이후 기능을 이용해달라는 알림 문을 전송해야 한다. Spring Security의 Authentication에서 user의 정보를 관리한다. 만약 Authentication에서 받아온 유저의 정보가 없거나 유효한 유저가 아니면 로그인이 되지 않았다고 판단하고 알림을 웹 페이지에 띄울 예정이다. Controller @Controller public class PostController { @GetMapping(value = "/writeMonth") public String postWriteMouth(Model model) { Objec..
-
Thymeleaf + Spring JPA를 이용한 게시물 좋아요 기능졸업과제/BackEnd 2023. 3. 17. 15:00
사용자가 마음에 드는 게시물을 좋아요 누를 수 있는 기능을 구현시작. 이전에 작성했던 블로그들은 사용자와 가깝게 동작하는 Controller부터 작성했는데 내가 읽다 보니 가독성이 떨어지는 거 같다. 내가 블로그를 참고하고 있을때 Controller 계층부터 적혀있으면 이해가 잘되지 않고 코드의 흐름이 파악이 잘 되지 않아서 오늘부터는 데이터가 저장되는 계층인 Repository부터 작성해야겠다. Entity @Entity @Data public class Favorite { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long favorite_id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(..
-
JPA를 이용해 최근 게시물 불러오기졸업과제/BackEnd 2023. 3. 14. 13:19
홈화면에 들어가면 최근 작성된 게시물이 보이도록 구현 도전! 분명히 JPA에서 제공하는 쿼리가 있을거라고 생각하고 일단 도전해 본다. 만약 없으면 비상상황 Repository https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.limit-query-result Spring Data JPA - Reference Documentation Example 119. Using @Transactional at query methods @Transactional(readOnly = true) interface UserRepository extends JpaRepository { List findByLastname(String..