DB설계
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);
jwt:
header: token
issuer: prgrms
client-secret: EENY5W0eegTf1naQB2eDeyCLl5kRS2b8xa5c4qLdS0hmVjtbvo8tOyhPMcAmtPuQ
expiry-seconds: 3600 // 만료시간을 1시간으로 지정
[JWT 토큰]
@Component
@Getter
@Setter
@ConfigurationProperties(prefix = "jwt")
public class JwtConfig {
private String header;
private String issuer;
private String clientSecret;
private int expirySeconds;
}
email을 통해서 토큰을 생성
위에서 만든 토큰을 디코딩할 경우 밑에 응답값으로 내려짐
1차 로그인
→ 이메일과 비밀번호를 통해 로그인 진행