
코드
User->>+Client: 로그인 요청 Client->>API_Server: /api/users/login Note over Client, API_Server: POST 로그인 요청 API API_Server->>+Reply: 로그인 요청 Reply-->>API_Server: 예외처리 - NotFoundUser Reply-->>API_Server: 예외처리 - BadCredentials Reply-->>Client: 로그인 응답 Client->>-User: UI 업데이트
Request
방법1) 사용자 { "email":"user1@test.com", "password":"user123" } 방법2) 사용자 { "email":"user2@test.com", "password":"user123" } 방법3) 작가 { "email": "author@test.com", "password": "author123" }
Response
Postman 예시
{ "success": true, "httpMethod": "POST", "statusCode": 200, "code": null, "data": { "userId": 2, "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJyb2xlcyI6WyJST0xFX1VTRVIiLCJST0xFX0FVVEhPUiJdLCJpc3MiOiJtb250aHN1YiIsImV4cCI6MTYzODUwMzQxNywiaWF0IjoxNjM4NDk5ODE3LCJ1c2VybmFtZSI6ImF1dGhvciJ9.xQVa6O8XpsCLmveTb1Vb6TlhPCDlwNymcnwsYm3SobysONZrdcrAU37hA_lT8a-hS94aXrUA8a91P1O9C0A2pw", "username": "author", "group": "AUTHOR_GROUP" } }

예외1) 유저 없을 경우 A002

예외2) 비밀번호 틀렸을 경우 A003

Seed 데이터
INSERT INTO permission(id, name) VALUES (1, 'ROLE_USER'), (2, 'ROLE_AUTHOR') ; INSERT INTO part(id, name) VALUES (1, 'USER_GROUP'), (2, 'AUTHOR_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) ; -- user1 비밀번호 : user123 -- user2 비밀번호 : user123 -- author 비밀번호 : admin123 INSERT INTO user(email, password, username, nickname, part_id) VALUES ('user1@test.com', '$2a$10$B32L76wyCEGqG/UVKPYk9uqZHCWb7k4ci98VTQ7l.dCEib/kzpKGe', 'user', 'userNick1', 1), ('user2@test.com', '$2a$10$B32L76wyCEGqG/UVKPYk9uqZHCWb7k4ci98VTQ7l.dCEib/kzpKGe', 'user', 'userNick2', 1), ('author@test.com', '$2a$10$SGKM3w/VgEWA8BwCuqvJsOTewYo5rFpTn3UZdrFJGP7ePQE7TdgBG', 'author', 'authorNick', 2) ; INSERT INTO writer(follow_count,user_id ) VALUES (0,6); ** 주의 : 작가 user_id는 맞춰서 넣어줘야 함.