SpringBoot 96

Springboot 게시글 불러오기!(1)

게시판의 하이라이트에 입성했다 일단 전체 글 한번 불러와 보고 페이징 처리를 하려고한다 그전에 글을 몇 개 넣어보자 이제 이걸 불러오면 된다 boardservice로가서 자체로 제공해주는 boarddao.findAll() 사용해서 전체 게시글을 가져오고 controller로가서 난 array라고 해서 보내겠다 그러면 thymealf에서 array로 받아서 쓰면 된다! jdbc에서 처음에 넘어왔을 때 어 requset.setattributes() 어디 있지 했는데 spring에서는 둘 다 사용 가능하지만 model로 간단히 사용할 수 있는 거 같아서 자주 쓰게 된다 html을 보면 이렇게 each를 사용해서 for문처럼 사용이 가능하다! 이제 페이징을 구현할 것이다 보면 글 순서도 오래된 순으로 나오고 예..

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 구글로그인!(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..

Spring boot 마이페이지!(2) 이메일 인증 with JavaMailSender

메일을 보내기 위해 build.gradle 로 들어가서 하나의 의존성을 추가한다 이걸 넣으면 @Autowired private JavaMailSender sender;//자체적으로 제공해주는 기능 이렇게 자체적으로 제공해주는 기능을 사용할 수 있다 의외로 메일 보내는 건 어렵지 않다 toaddress=보낼 주소 subject=제목 body=내용이다 핸드폰 인증도 비슷한 거 같다 다만 돈이 든다 그래서 마지막에 공부해보려고 한다 그리고 application.properties로 가서 이렇게 추가해준다 단 사용할 계정에서 보안 수준이 낮은 앱의 액세스 허용을 해줘야 한다! 이제 userservice로가서 인증번호 전송 발생 시 db에 들어있는 랜덤 넘버를 수정해주는 함수를 만들자 @Transactional ..