Spring boot kim's cafe 57

Springboot 게시판 글쓰기!(2) only text version

이제 게시글을 쓸건대 boardservice를 만들고 save를 이용해서 넣어준다 편리하다 진짜! restcontroller 만들어주고 고민인 게 여기서도 한번 emailcheck로직을 걸어줘야 할지 고민이다 일단 그냥 가는 걸로! js를 만들어준다 tittle이 contetnt보다 길게썻네..ㅋㅋㅋ 어쨌든 잘 들어온다 음 근데 사실 내용=content는 엄청 길게 들어올 텐데 이제 다음에는 게시판에 글을 삽입하는 걸 해보자!

Springboot 게시판글쓰기!(1) with Ajax only text version

이제 후기 게시판을 만들자 html vo dto dao 현재 작성된 글이 없어서 아무것도 뜨지 않는다 이제 글 쓰는 페이지를 만들자 일단 ajax 왜냐면 글쓰기를 하는데 이메일 인증이 안되어있으면 못쓰게 만들려고한다! 사실 좀더 필요한 기능이 있다 영수증인증이라던가 근데 진짜 카페를 차린건아니여서 ㅋㅋㅋ 이메일인증만 해주고 아니근데... 점점 늘어난다... 합칠 방법을 나중에 생각해 봐야겠다... 어쨌든 이제 restcontroller로가서! 검증을 해주고 맞다면 이제 writearticlepage로오는데 충분히 그냥 검사-> 소스 해서 true로 바꾸고 올 수 있으므로 컨트롤러에서도 한 번 더 검사해보고 (여기서는 get방식이다!) 아니면 boardlist로 보내버리자!

Springboot 권한! with ENUM

이제 오타 확률을 줄이기 위해서 enum을 이용해 "ROLE_USER"를 넣어주자 이렇게 enum으로 만들어주면 된다 웃긴 게 enum은 생성자가 private다 저 getValue로 값을 꺼내 쓰면된다 이제 "ROLE_USER"를 다 찾아서 바꿔주자! 회원가입/oauth로그인 테스트 잘 들어온다 https://mine-it-record.tistory.com/204 [JAVA] 자바_enum 클래스 (열거형_enumeration type) enum 이란 무엇일까? 열거체(enumeration type)로 JDK 1.5 이상에서 사용할 수 있다. 간단하게 요약을 해보자면 다음과 같다. - 클래스처럼 보이게 하는 상수 - 서로 관련있는 상수들끼리 모아 상수들을 mine-it-record.tistory.com..

Springboot 구글로그인!(3) with interface

자 구글은 /email/name/sub로 꺼내는 형식인데 페이스북/네이버/카카오도 모두 구글과 같을까? 아닐 확률이 크고 또 "google"때문에 다른 플랫폼 로그인도 모두 google로 들어가게 된다 그렇다면 System.out.println("userrequest"+userRequest.getClientRegistration()); 얘를 한번 뒤져 보자 registrationId='google', 이건 공통인 거 같다 이 값이 facebook이면 face으로 google이면 구글로 해주면 된다 새로운 인터페이스를 만들자! 이렇게 하고 igoogle/iface/inaver 이렇게 만들어 주면 된다 나중에 타플랫폼 추가시 인터페이스만 이제 늘려주면 된다 loaduserservice에 조건문을 걸어주자! ..

Springboot 구글로그인!(2) with loadUser and principaldetail

자 이제 loaduser를 작성할 건데 그전에 근데 사실 지금도 로그인이 된다 다만 우리가 원하는 값없이 id값만 딸랑 받아서 오게 될 뿐이다 OAuth2UserRequest userRequest 얘가 들고 온 정보를 빼내면 된다 열어보면 막 뭐를 열심히 들고 와 줬는데 이제 우리가 필요한 정보를 꺼내서 쓰면 된다 뭐로? super.loadUser(userRequest) 얘로 마우스를 갖다 대 보면 리턴 타입이 OAuth2 User이다 그러면 이제 이메일을 가져와서 이미 등록되어있는지 확인하고 등록되어있다면 로그인하고 아니라면 자동 회원가입 후 로그인시켜주면 된다! 우리가 찾는 정보는 .getAttributes()안에 있고 .getAttributes()는 map형식이므로 키워드로 찾아주자 키워드는 Sys..

Springboot 구글 로그인!(1) with oauth2

일단 application.properties 로가서 이렇게 작성해준다 이건 구글 api센터에 가서 발급받으면 된다 모르겠으면 https://youtu.be/9ui2i-SgBpk 이 영상을 참고하자! 주의할 점 페이스북은 scope 없어도 기본적인 거 다 주는 거 같던데 구글은 spring.security.oauth2.client.registration.google.scope=profile,email 없으면 로그인 시 구글이 가지고 있는 우리 아이디 번호만 받아온다 훨씬 길지만 실제 사용 중인 아이디여서 잘랐다 그래서 꼭 scope설정 해주자! 그리고 html 놀랍게도 스프링 부트에서 구글/페북 같은 큰 사이트에 대한 로그인 경로는 자동으로 지정해줘서 저렇게 입력하면 된다 자 이제 구글 로그인 로그인을 ..

Springboot 비밀번호찾기!(2) 임시비밀번호 발급

이제 인증번호 입력이 맞다면 db비밀번호를 임시 비밀번호로 바꿔주고 임시 비밀번호를 발송해주는 식으로 하려고 한다! 조금 헷갈릴수있으나 그냥 메일 두번보내는것이다! 일단 비밀번호-> 임시 비밀번호로 바꿔주는 함수를 만든다 이제 restcontroller로와서 userservice.confrimRandnum(email,randnum) randnum을 검사해주고 맞다면 사실 어차피 이메일을 두 번 보내는 건데 한 개의 함수로 끝낼 수 있을 거 같은데 일단 이렇게 해봤다 utilservice.GetRandomNum(8); 8자리로 임시번호를 받고 아참 여짓것 randnum/temppwd는 String 형식이다 번호지만 string으로 주고받고 하고 있다 이게 확장성도 좋을 거 같다 나중에 특수문자 추가라던지 ..

Spring boot 비밀번호찾기!(1) 인증번호 발송

시스템은 이메일을 입력하면 db에 존재하는 이메일인지 확인하고 인증번호 요청을 누르면 인증번호가 가고 인증번호를 알맞게 제출하면 임시 비밀번호를 주고 db 비밀번호도 임시로 바뀌게 된다 html 이제 비동기 ajax로 또 이메일이 존재하는지 안 하는지 알려주면 된다 이메일 중복검사 로직을 사용하면 된다! js 반대로 존재하지 않으면 red 존재하지 않는 이메일이라고 말해준다 인증번호 발송도 이전에 만들어 놓았던 이메일 인증을 한 번 더 사용하면 된다 근데 보면 이메일을 AuthenticationPrincipal principaldetail principaldetail에서 즉 로그인했을 때만 꺼내 쓸 수 있게 사용되고 있다 그래서 저 몸통 부분을 빼서 이렇게 변수로 받을 수 있게 서비스로 하나 빼주고 물론..

Spring boot 마이페이지!(4) 비밀번호 변경 with validation

비밀번호 심플하게 변경 페이지를 만든다 controller로가서 이제 처리해주는 작업을 만들자 restcontroller로 가서 작성해준다! 이렇게 받을 건데 현재는 리턴 타입이 boolean 생각해보면 이전부터 계속 boolean으로 리턴을 해줬는데 그랬을 때 생기는 문제가 아니 true/false인건좋은데 그래서 뭐가 틀린건데..? 인증번호? 아니면 서버 문제?? 이렇게 질문이 생길 수가 있다 그래서 다음부턴 enum을 사용해서 boolean과 error메시지를 담아서 리턴해보자! 일단 boolean으로 작성! 이제 이번에는 특별히 native쿼리를 사용할 예정이다 dao로 가서 이렇게 update문을 날려주는데 좀 특이하다 select에 비해 붙는 게 많다 이유는 둘이 사용하는 쿼리 작동방식이 다른..

Spring boot 마이페이지!(3) 이메일 인증

이제 입력한 숫자로 판별을 할 건데 역시 ajax를 이용해서 하려고 한다 일단 userserivce에서 판별해주는 함수를 만든다 그래서 맞다면 db의 emailcheck를 false->true로 아니라면 false를 담고 있는 no를 리턴한다! 그다음 restcontroller를 만들어준다 자 여기서 중요한 점 인증이 성공해서 db데이터가 true로 바뀌어도 나는 현재 첫 로그인 상태 그대로를 사용 중이다 그래서 바뀐 상태의 emailcheck를 가지고 와서 다시 시큐리티 세션의 @AuthenticationPrincipal 에게 다시 꼭 넣어준다! 아니면 뭐 로그아웃을 시키고 로그인을 다시 시켜도 되긴 하는데 일단 이 방법으로 사용하겠다 그리고 마지막 ajax를 만들어주자! 아 불편하다... 위에 aja..