스프링부트 블로그 프로젝트

자바 스프링/부트 블로그 JPA 프로젝트

#29 OAuth2.0과 카카오 연동 로그인2 (로그인 서비스 완료)

AccessToken을 통해 카카오 회원정보 가져오기 이전까지 code를 받는 인증처리 완료와 AccessToken을 받아 권한을 부여받는 과정까지 했다. 이번 시간엔 AccessToken으로 카카오쪽으로 카카오로 로그인한 회원의 개인정보를 요청해보겠다. 우선 필요한건 body 데이터니까 return response; 에서 response.getBody()로; 코드를 수정한다. 이 정보를 오브젝트에 담아야 한다. 이거랑 똑같이 생긴 오브젝트를 하나 만들어보자 변수명도 정확히 같아야 한다. model 패키지에 OAuthToken 클래스를 생성하고 body 데이터를 담을 오브젝트인 OAuthToken을 만들었다. getter/setter를 생성해줘야하니 @Data 어노테이션을 꼭 작성해야한다. 이 JSON ..

자바 스프링/부트 블로그 JPA 프로젝트

#28 OAuth2.0과 카카오 연동 로그인1 (code와 AccessToken 받기)

OAuth2.0 개념 OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. OAuth 2.0은 1.0에서 알려진 보안 문제 등을 개선한 버젼이다. 이렇게 매 사이트마다 회원가입을 할 경우 사이트의 개수만큼 내 개인정보는 많이 뿌려지고 노출되게 된다. 개인정보를 지키기에 한 곳에서 관리하는게 훨씬 더 효과적이다. 그래서 특정한 대형 포털 사이트들이 이 개인정보들을 관리하게 된다. 네이버와 카카오가 대표적이다. 이 2개의 사이트가 대표적으로 우리의 개인정보를 관리해서 로그인처리를 대신해준다. 그러니까 내가 A라는 사이트에 회원가입을 하지 않고 B라..

자바 스프링/부트 블로그 JPA 프로젝트

#27 회원 수정

회원정보 수정 header.jsp 이제 회원정보 버튼을 눌렀을 때 수정할 수 있는 기능을 구현해야 한다. 그러면 /user/updateForm으로 가는 Controller를 작성해야 한다. UserController에서 다음과 같이 /user/updateForm으로 가는 코드를 작성하였다. /user/updateForm을 생성해보자 user폴더에 있는 joinForm을 복사해 붙여넣고 수정한다. updateForm.jsp username은 수정할 수 없게 readonly를 설정한다. 그리고 현재 header.jsp에 작성되어 있는 principal 코드를 이용해 updateForm에 value값을 줄 수 있다. updateForm을 다음과 같이 작성한다. principal을 이용해 value값을 설정하고..

자바 스프링/스프링 공부

스프링의 작동 원리 - 로그인편

로그인을 통한 스프링 작동 원리 설명 1. 톰캣이 켜져있을 때 사용자가 request 요청을 하면 2. request가 필터에서 필터링 해줄 것들이 필터가 되고 3. 디스패처한테 들어온다. 디스패처는 컨트롤러 하나를 메모리에 띄워야한다. 4. /login이 들어왔다면 /login이라는 주소가 있는 것을 컨트롤러를 메모리에 띄운다. @PostMapping("/login")을 가지고 있는 메서드가 있는 컨트롤을 띄운다. 그 컨트롤러는 이제 username과 password를 받는다. 컨트롤러는 이렇게 username과 password를 받는 역할에서 끝난다. 컨트롤러의 역할은 어떤 주소 요청이 왔을 때 주소 요청에 대한 함수를 하나 만들어서 그 함수의 데이터(body data)를 받는 역할이다. 5. 이제 ..

자바 스프링/부트 블로그 JPA 프로젝트

#26 CRUD 게시판 - Update, Delete (수정, 삭제)

Delete (글 삭제하기) 글 삭제하기 이 삭제 버튼(id=btn-delete)를 누르면 게시글이 삭제되도록 자바스크립트가 동작하도록 할 것이다. 우선 detail.jsp에 다음 코드를 작성해 id를 설정한다. board.js에 넘겨야 할 데이터는 id값을 찾아서 거기 있는 텍스트를 뽑아야 한다. 즉, {board.id}가 전달되어야 한다는 것이다. 이제 board.js로 가서, 자바스크립트를 작성한다. 그런데 이렇게 작성하면 삭제가 제대로 동작하지 않는다. 이걸 이해하기 위해서는 val()과 text() 정도는 이해하고 있어야 한다. * 예시로 보는 html(), val(), text() $(셀렉터).html : 태그, 문자열 모두 가져옴 var word = $("#daram").html(); 다람쥐..

자바 스프링/부트 블로그 JPA 프로젝트

#25 CRUD 게시판 - Read (목록,페이징,상세보기)

글 목록 보기 이전에 적었던 글을 이제 보이게 하자. 해당 페이지로 올 때 Select를 해야 한다. 메인페이지(index)로 갈 때 BoardService를 연결하자 메인페이지로 갈 때 데이터를 가져와야 한다. 스프링에서는 이 데이터를 가져갈 때 Model이 하나 필요하다. model에 데이터를 담기 위해 addAttribute() 메소드를 사용한 것이다. 누가 "/"로 주소를 요청하면 model에 글목록을 다 들고 온다. 이 글 목록은 BoardService에서 findAll()로 다 가져올 수 있다. model.addAttribute(String name, Object value) : value 객체를 name 이름으로 추가한다. 이제 boardService에 가서 글목록()을 작성해주자 현재 bo..

자바 스프링/부트 블로그 JPA 프로젝트

#24 CRUD 게시판 - Create (글 작성하기)

CRUD란? CRUD란 Create, Read, Update, Delete를 말한다. 글 작성, 글목록보기(+페이징, +상세보기), 글 수정하기, 글 삭제가 가능한 게시판 구현을 할 것이다. 글 작성 기능 (Create) 우선 BoardController.java로 가서 코드를 작성해준다. application.yml에서 prefix와 suffix를 생각해서 리턴을 작성해야한다. header.jsp에서 메뉴에 걸린 링크가 saveForm인지 확인하고 아니라면 바꿔준다. 그러면 이제 board폴더 안에 있는 saveForm.jsp를 작성해줘야한다. board폴더를 생성하고 index.jsp를 복사해서 saveForm.jsp를 만들어보자 index.jsp를 복사해와서 saveForm.jsp가 이렇게 작성되어..

자바 스프링/부트 블로그 JPA 프로젝트

#23 스프링 시큐리티 로그인

스프링 시큐리티 로그인 코드 작성 로그인 완료 버튼을 폼 안쪽에 넣었기 때문에 버튼을 누르면 action에 있는 주소가 실행된다. 즉 여기서는 (name) username과 password 이 두 개의 값을 가지고 /auth/loginProc의 주소로 이동한다. + 추가 위 사진의 밑줄 친 loginPro를 loginProc로 수정한다. 그런데 현재 UserApiController.java에 /auth/loginPro가 만들어져 있지 않다. 여기서 /auth/loginPro를 만들지 않는 이유는 스프링 시큐리티가 이 로그인 요청을 가로채게 할 것이기 때문이다. 그걸 이제 어떻게 할 것인가? SecurityConfig.java로 가서 다음과 같이 코드를 작성하자 스프링 시큐리티가 로그인을 가로채서 대신 로..

daramG
'스프링부트 블로그 프로젝트' 태그의 글 목록