Closed white-gyu closed 1 year ago
13. ๋ก๊ทธ์ธ ์๋ฃ
๋ก๊ทธ์ธ์ ์๋ฃํ์ฌ ์ฌ์ฉ์์๊ฒ ์๋ฆฝ๋๋ค. ์ด ๋ userId์ email์ Jwt์ ๋ด์ ์ ๋ฌํฉ๋๋ค.
jwt ์ ํจ ๊ธฐ๊ฐ = 1๋ฌ ๋ก ์ฒ๋ฆฌํ์์ต๋๋ค. @JooJaeSeong @bhyoo99 @lcw729 @bahar-j ์ด์ ๋ํ ์๊ฒฌ ๋ถํ๋๋ ค์ ๐
์ฐธ๊ณ )
jwt๋ฅผ header๋ก ๋ด๋ API๋ ์๋์ ๊ฐ์ด ๋ณด๋ด์ฃผ์๋ฉด ๋ฉ๋๋ค..!
curl --location --request GET 'http://localhost:8080/api/me' \
--header 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoyLCJyb2xlcyI6WyJVU0VSIl0sImlzcyI6ImN1cHBpbmdfbm90ZSIsImV4cCI6MTY3OTE1MjExNiwiaWF0IjoxNjc2NTYwMTE2LCJlbWFpbCI6ImhhbWEyMjI5NjY4QG5hdmVyLmNvbSJ9.GG2aWZ3c5s5I3LZRHbt1qNybPFAO5a7UcPMkw7imr2xjfyj3x2F5mR8uBne0hiZytf_hYml2gU3dhEzWwgI9uw'
https://github.com/cupping-note/cupping-note-server/pull/14/commits/8f13f5615c2e35cc8b727864f7c496b49b613bef ์ปค๋ฐ์ ํตํด 5๋ฒ authorization code ๋ฐ๋ ๋์
์ด server(= cupping-note-server)
→ client(= cupping-note-expo)
๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
controller ๋ด ์๋์ ๊ฐ์ด ํํ
@GetMapping
public ResponseEntity<String> getUser(@AuthenticationPrincipal final JwtAuthentication authentication) {
return ResponseEntity.ok(authentication.userId);
}
๐ ๊ฐ์
๐ Sequence Diagram
1. ์นด์นด์ค/์ ํ ๋ก๊ทธ์ธ ์์ฒญ
์ฌ์ฉ์๊ฐ ์นด์นด์ค, ์ ํ ๋ก๊ทธ์ธ์ ์์ฒญํฉ๋๋ค.
2. authorization code ์์ฒญ
access/refresh token ๋ฐ๊ธ์ ์ํ authorization code ๋ฐ๊ธ์ ์์ฒญํฉ๋๋ค.
3. ๋์ ๋ฐ ๋ก๊ทธ์ธ
์นด์นด์ค๋ ์ ํ ๋ก๊ทธ์ธ ๋์ ํ๋ฉด์ ํธ์ถํ๊ณ ์ฌ์ฉ์ ๋์๋ฅผ ๊ตฌํฉ๋๋ค. ๋์ ํ๋ฉด์ ์ฑ์ ์ค์ ๋ ๋์ ํญ๋ชฉ์ ๋ํด ์ฌ์ฉ์์๊ฒ ๋ณธ ์๋น์ค์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋ฑ์ ๋์๋ฅผ ๊ตฌํฉ๋๋ค.
4. authorization code ๋ฐ๊ธ ์์ฒญ
์ฌ์ฉ์ ๋์ ์ดํ authorization code ๋ฐ๊ธ ์์ฒญํฉ๋๋ค.
5. authorization code ๋ฐ๊ธ
์ ์์ฒญํ API ์๋ต๊ฐ์ ํตํด authorization code๋ฅผ ๋ฐ๊ธ ๋ฐ์ต๋๋ค.
6. authorization code๋ก access/refresh token ๋ฐ๊ธ ์์ฒญ
authorization code๋ก access/refresh token ๋ฐ๊ธ ์์ฒญํฉ๋๋ค.
7. access/refresh token ๋ฐ๊ธ
์ ์์ฒญํ API ์๋ต๊ฐ์ ํตํด access/refresh token์ ๋ฐ๊ธ ๋ฐ์ต๋๋ค.
8. ํ ํฐ ์ ๋ณด ์กฐํ/๊ฒ์ฆ ๋ฐ ๋ก๊ทธ์ธ ์๋ฃ
ํ ํฐ์ ๊ฒ์ฆํ๊ณ ์ดํ ๋ก๊ทธ์ธ์ ์๋ฃํฉ๋๋ค.
9. ํ ํฐ์ผ๋ก ์ฌ์ฉ์ ์ ๋ณด ์กฐํ ์์ฒญ
access token์ ํตํด ์ด๋ฉ์ผ, ๋๋ค์๊ณผ ๊ฐ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์์ฒญํฉ๋๋ค.
10. ์์ฒญ ๊ฒ์ฆ ๋ฐ ์ฒ๋ฆฌ
์นด์นด์ค ์๋ฒ์์ ์์ฒญ์ ๊ฒ์ฆํ๊ณ ์ฒ๋ฆฌํ์ฌ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์๋ตํฉ๋๋ค.
11. ํ์ ๊ฐ์ ์ฒ๋ฆฌ
๋ณธ ์๋น์ค์ ๊ฐ์ ๋์ง ์์ ์ ๊ท ์ฌ์ฉ์์ธ ๊ฒฝ์ฐ ํ์ ๊ฐ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
12. ๋ก๊ทธ์ธ ์ฒ๋ฆฌ
๋ณธ ์๋น์ค์ ๊ฐ์ ๋ ๊ธฐ์กด ์ฌ์ฉ์์ธ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
13. ๋ก๊ทธ์ธ ์๋ฃ
๋ก๊ทธ์ธ์ ์๋ฃํ์ฌ ์ฌ์ฉ์์๊ฒ ์๋ฆฝ๋๋ค. ์ด ๋
userId
์email
์ Jwt์ ๋ด์ ์ ๋ฌํฉ๋๋ค.๐ ์ฐธ๊ณ ์๋ฃ