- 회원가입
구글 로그인 버튼 페이지
→ 버튼 클릭
→ OAuth 로그인 화면
→ 로그인 진행
→ 백엔드에서 principal 받은후 임시 저장, 추가 회원가입으로 redirect with query string
localhost:3000/signup?email=test@test&name=yonghoon
→ 추가회원가입에서 데이터 입력후 post 요청
POST http:/localhost:8080/api/v1/signup
request
{ "email": "test@test.com" "nickname": "test" "field": "FRONTEND" "career": "JUNIOR" "MBTI": "ABCD" }
response
-> redirect: http://localhost:3000 body { "member": { "id": 1, "email": "test@test.com", "profileImageUrl": "twetwet", "nickname": "test", "field": "FRONTEND", "career": "JUNIOR", "MBTI": "ABCD", "githubUrl": null "blogUrl": null } "accesstoken": "qwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwqdwdq" }
→ 회원 저장 후 메인으로 redirect with token,user in body
- 로그인
구글 로그인 버튼 페이지
→ 버튼 클릭
→ OAuth 로그인 화면
→ 로그인 진행
→ 백엔드에서 principal 받은 후 이미 존재하는 회원인 경우 특정페이지로 redirect with query string(domain/login?id=~~~)
localhost:3000/login?id=1
→ 특정페이지에서 바로 get 요청
POST http:/localhost:8080/api/v1/login
request
{ "id": 1 }
response
{ "member": { "id": 1, "email": "test@test.com", "profileImageUrl": "twetwet", "nickname": "test", "field": "FRONTEND", "career": "JUNIOR", "MBTI": "ABCD", "githubUrl": null "blogUrl": null } "accesstoken": "qwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwdqwqdwdq" }
→ 백엔드에서 로그인 진행 한 후 이전페이지로 redirect with token,user in body
- 로그아웃
로그아웃 버튼 클릭
POST https:/domain/api/v1/logout
request
response
→ 프론트에서 소지중인 token 제거
→ 백엔드에서 refreshtoken 제거 후 accesstoken blacklist 추가
- accesstoken 만료시
회원이 서비스 이용 중 request 요청
→ 백엔드에서 accesstoken 만료 확인 예외처리(새로운 accesstoken 추가)
- accesstoken, refreshtoken 만료시
회원이 서비스 이용 중 request 요청
→ 백엔드에서 accesstoken 만료 시 refreshtoken 로 만료 시 예외처리
- 토큰 기반으로 유저 정보 보내는 API
GET https:/domain/api/v1/auth
request
Authorization - Bearer accessToken
response
{ "id": 1, "email": "test@test.com", "profileImageUrl": "twetwet", "nickname": "test", "field": "FRONTEND", "career": "JUNIOR", "MBTI": "ABCD", "githubUrl": null "blogUrl": null }
이전버전입니다 위의 정보를 봐주세요
로그인 GET /api/v1/login
BACK_END_ENDPOINT/authorize/SERVICE_DOMAIN(google, git, naver)?redirect=localhost:3000(CLIENT_END_POINT)/main