SOLUX-완숙이

spring security+jwt 회원가입, 로그인 #1

leeeehhjj 2022. 1. 12. 15:50

security 적용 전 회원가입 코드

 

1. Member 클래스

package solux.wansuki.OurNeighbor_BE.domain.Member;

import lombok.*;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;

@Builder
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Entity
public class Member {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private String nickName;

    private String email;

    private String password;

    private String loginId;

    @ElementCollection(fetch = FetchType.EAGER)
    @Builder.Default
    private List<String> roles = new ArrayList<>();


    @Builder
    public Member(String name, String nickName, String email, String password,String loginId, List<String> roles) {
        this.name = name;
        this.nickName = nickName;
        this.email = email;
        this.password = password;
        this.loginId = loginId;
        this.roles = roles;
    }

 

2. MemberService

package solux.wansuki.OurNeighbor_BE.service;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import solux.wansuki.OurNeighbor_BE.domain.Member.Member;
import solux.wansuki.OurNeighbor_BE.domain.Member.MemberRepository;
import solux.wansuki.OurNeighbor_BE.dto.Member.MemberSaveDto;

import java.util.Collection;
import java.util.Collections;
import java.util.List;

@RequiredArgsConstructor
@Service
public class MemberService {
    private final MemberRepository memberRepository;

    @Transactional
    public Long signUp(MemberSaveDto memberSaveDto) {
        Member member = Member.builder()
                .name(memberSaveDto.getName())
                .nickName(memberSaveDto.getNickName())
                .email(memberSaveDto.getEmail())
                .password(memberSaveDto.getPassword())
                .loginId(memberSaveDto.getLoginId())
                .roles(Collections.singletonList("ROLE_USER"))
                .build();
        return memberRepository.save(member).getId();
    }

    public List<Member> findAll() {
        return memberRepository.findAll();
    }
}

회원가입 시 role을 ROLE_USER로 설정

 

3. MemberController

package solux.wansuki.OurNeighbor_BE.controller;

import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import solux.wansuki.OurNeighbor_BE.domain.Member.Member;
import solux.wansuki.OurNeighbor_BE.dto.Member.MemberSaveDto;
import solux.wansuki.OurNeighbor_BE.service.MemberService;

import java.util.List;

@RequiredArgsConstructor
@RestController
public class MemberController {
    private final MemberService memberService;

    @PostMapping("/signup")
    public Long signUp(@RequestBody MemberSaveDto memberSaveDto) {
        return memberService.signUp(memberSaveDto);
    }

    @GetMapping("/member")
    public List<Member> findAll() {
        return memberService.findAll();
    }
}