DB설계

Untitled

data.sql

INSERT INTO permission(id, name)
VALUES (1, 'ROLE_USER'),
       (2, 'ROLE_AUTHOR'),
			 (3, 'ROLE_ADMIN'),
;

INSERT INTO part(id, name)
VALUES (1, 'USER_GROUP'),
       (2, 'AUTHOR_GROUP'),
       (3, 'ADMIN_GROUP)'
;

-- USER_GROUP (ROLE_USER)
-- AUTHOR_GROUP (ROLE_USER, ROLE_AUTHOR)
INSERT INTO part_permission(id, part_id, permission_id)
VALUES (1, 1, 1),
       (2, 2, 1),
       (3, 2, 2),
       (4, 3, 3)
;

-- user1 비밀번호 : user123
-- user2 비밀번호 : user123
-- author 비밀번호 : author123
-- admin 비밀번호 : user123
INSERT INTO user(email, password, username, nickname, part_id)
VALUES ('[email protected]', '$2a$10$B32L76wyCEGqG/UVKPYk9uqZHCWb7k4ci98VTQ7l.dCEib/kzpKGe', 'user', 'userNick1',
        1),
        ('[email protected]', '$2a$10$B32L76wyCEGqG/UVKPYk9uqZHCWb7k4ci98VTQ7l.dCEib/kzpKGe', 'user', 'userNick2',
        1),
       ('[email protected]', '$2a$10$SGKM3w/VgEWA8BwCuqvJsOTewYo5rFpTn3UZdrFJGP7ePQE7TdgBG', 'author',
        'authorNick', 2),
			 ('[email protected]', '$2a$10$B32L76wyCEGqG/UVKPYk9uqZHCWb7k4ci98VTQ7l.dCEib/kzpKGe', 'admin', 'admin',
        3),
;

INSERT INTO writer(follow_count,user_id )
VALUES (0,6);

  1. JWT 관련 설정을 yml파일에 넣는다.
jwt:
  header: token
  issuer: prgrms
  client-secret: EENY5W0eegTf1naQB2eDeyCLl5kRS2b8xa5c4qLdS0hmVjtbvo8tOyhPMcAmtPuQ
  expiry-seconds: 3600 // 만료시간을 1시간으로 지정 

[JWT 토큰]

  1. JwtConfig를 만든다.
@Component
@Getter
@Setter
@ConfigurationProperties(prefix = "jwt")
public class JwtConfig {

    private String header;

    private String issuer;

    private String clientSecret;

    private int expirySeconds;
    }

email을 통해서 토큰을 생성

Untitled

위에서 만든 토큰을 디코딩할 경우 밑에 응답값으로 내려짐

Untitled

1차 로그인

→ 이메일과 비밀번호를 통해 로그인 진행