@oauthlib/core-contributors ์๋ ํ์ธ์. ์ ๋ ๋ชจ๋ ๋ฉ์ด์ ๋ค์ด์คํธ๋ฆผ ํ๋ ์ด์ด๊ฐ oauthlib ๊ทธ๋ฃน์์ ์ญํ ์ ํ๋๋ก ์ ์ํ๊ณ ์ถ์ต๋๋ค.
๊ทธ๊ฒ๋ค์ด ์์ผ๋ฉด ํ๋ ์์ํฌ๋ ์์กดํ ์ ์์ผ๋ฉฐ oauthlib ํ๋ ์์ํฌ ์์ฒด ๋์ ๋ค์ด์คํธ๋ฆผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์๋ก์ด ๊ธฐ๋ฅ์ด ๊ตฌํ๋๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. oauthlib ์ปค๋ฎค๋ํฐ์ ๋ ๋ง์ ํ์ฑ ํ์์ด ์์ ์ ์๋ค๋ฉด ๋ชจ๋์๊ฒ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์๋์ ํ์ฑ ๋ค์ด์คํธ๋ฆผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชฉ๋ก์ด ์ ๊ณต๋ฉ๋๋ค.
๋ด ์ ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
oauthlib ํ๋ ์์ํฌ๊ฐ ์จ์ ์ด ์ ์๋ ์ถฉ๋ถํ ๊ณต๊ฐ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ป๊ฒ ์๊ฐํด ?
ํ @singingwolfboy , @daenney , @jleclanche , @synasius , ... ?
๋๋ ์ค์ ๋ก ์ ์ oauthlib org๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ์ฐฌ์ฑํฉ๋๋ค. ํ์ฌ FFA ๊ธฐ๋ถ ์กฐ์ง ์ด์์ธ ์ฌ์ฆ ๋ฐด๋์ ์์ต๋๋ค. ์๋ ์กฐ์ง์์ ๋ณธ์ง์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ฒ์์๋ ๊ทธ๊ณณ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฐ๊ธฐ ๊ถํ์ด ์์ด๋ ์๊ด์ ์์ง๋ง ํ์ํ ๊ฒ์ด๋ผ๊ณ ๋ ์๊ฐํ์ง ์์ต๋๋ค. ๋๋ Flask์ ๊ฝค ์ต์ํ๊ณ ๋ฌธ์ ์ฒ๋ฆฌ, PR ๋ณํฉ ๋ฑ์ ํตํด Flask-Dance์ ์ง์ ๊ธฐ์ฌํ๋ ๊ฒ์ด ํธ์ํ์ง๋ง OAuth ๋ฐ OAuth ์ฌ์์ ๋ํด ๋์ผํ ์น์์ฑ์ ์ฃผ์ฅํ ์ ์์ต๋๋ค. ๋ฌธ์ ์ ์ฝ๋ ๋ฆฌ๋ทฐ์ ์ฐธ์ฌํ ์๋ ์์ง๋ง ์์ฃผ ์ฌ์ํ ๋ณ๊ฒฝ์ ์ ์ธํ๊ณ ๋ oauthlib์ PR์์ ๋ณํฉ ๋ฒํผ์ ๋๋ฅด๋ ๊ฒ์ด ํธํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
@jleclanche , ํ๋ก์ ํธ๋ฅผ oauthlib org๋ก ์ฎ๊ธฐ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ์ ์ง ๊ด๋ฆฌ ์์ (๋ฌธ์, ๋๊ตฌ, ๋งํฌ ๋ฑ)์๋ ๋ถ๊ตฌํ๊ณ ์ ๋ ๊ทธ๊ฒ์ด ์ข์ ์๊ฐ์ด๊ณ ์ฅ๊ธฐ์ ์ผ๋ก ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ณ-oauthlib๋ฅผ ์กฐ์ง์ผ๋ก ์ฎ๊ธธ ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@daenney , ์๋ฒฝํฉ๋๋ค! ๋ค์ด์คํธ๋ฆผ ๊ฐ๋ฐ์๊ฐ OAuth์ ๋ํ ๋ชจ๋ ๊ฒ์ ์ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง๋ ์์ง๋ง libs์ oauthlib ์ฌ์ด์ Python API๊ฐ ์์ต๋๋ค. ๋น์ ์ ํ์คํ ์ด๊ฒ์ ๋ํด ํ ๋ง์ด ์๊ณ , ์ด ๋ถ๋ถ(API)์ ๊ฒํ ํ๋ ๊ฒ์ Flask-Dance์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋งค์ฐ ์ ์ตํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋์๊ฒ ํฉ๋ฆฌ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค! ๊ฐ์ธ์ ์ผ๋ก๋ ์ง์ ์ ์ผ๋ก๋ ํ์ฌ๋ก์๋ ์๋ฌด ์ฉ๋๋ก ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์์ฆ Flask-Dance ์์ ์ ๋ง์ ์๊ฐ์ ํ ์ ํ์ง ์์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ฌ์ ํ ์ ๊ทน์ ์ผ๋ก ์ง์ํ๊ณ ์์ผ๋ฉฐ @daenney ๊ฐ ํฐ ๋์์ด ๋์์ต๋๋ค. (๋ค์ ํ๋ฒ ๊ฐ์ฌํฉ๋๋ค!)
์ค์ ๋ก requests-oauthlib
๋ก ๋ง์ ์ผ์ ํ ์ ์์์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ทธ๋ ๊ฒ ํ ์ ์๋ ๊ถํ์ด ์๋ค๋ ๊ฒ์ ํ์คํ ์ข์ ์ผ์
๋๋ค. ์ง๋ฌธ ํ๋ ๋: ์ ๋ ์ต๊ทผ์ Tidelift ์ ๋ํด ์๊ฒ ๋์๊ณ Flask-Dance์ ๊ด๋ฆฌ์๋ก Tidelift์ ํ๋ซํผ์ ๋ฑ๋กํ์ต๋๋ค. requests-oauthlib
์ ๋ํด์๋ ๋์ผํ ์์
์ ์ํํด์ผ ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋๊ตฌ๋ ์ง ๊ทธ๊ฒ์ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
์์งํ ๋งํด์, ์๊ฐ๊ณผ ๋๊ธฐ๊ฐ ์ฃผ์ด์ง๋ค๋ฉด requests-oauthlib
์ฝ๋๋ฒ ์ด์ค์ ๋ฌธ์๋ฅผ ๋ค์ ์์ฑํ๊ณ ์ถ์ต๋๋ค. ์์
ํ๊ธฐ๊ฐ ๊ทธ๋ค์ง ์ข์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ์์ ๊ณผ ๊ด๋ จํ์ฌ ์ธ์ ๋๋ ์ธ์ ๊ทธ๋ ๊ฒ ํ ์ ์์์ง ํ์ ํ ์ ์์ต๋๋ค.
@singingwolfboy , Tidelift์ ๋ํ ๊ฑฑ์ ์ ์์ต๋๋ค.
์๋ฌด๋ ์ด์๋ฅผ ์ ๊ธฐํ์ง ์๋๋ค๋ฉด ์ผ์ฃผ์ผ ์์ ์ด ํ๋ก์ ํธ์ ๋ํ ๋ช ๊ฐ์ง ์ฐ๊ธฐ ๊ถํ์ ๋ถ์ฌํ๊ฒ ์ต๋๋ค. @thedrow , @skion , @duaneking , @wiliamsouza ๋ฅผ ์ฐ๋ฅด์ธ์.
์์ผ๋ก ์๊ฐ์ ๋ ๋ณด๋ผ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ๋ฐฉ๋ฒ์ ์ ํธํฉ๋๋ค.
requests-oauthlib ์ ์ฅ์์ GitHub ์คํฐ์ ๋ฒํผ์ ํ์ํ๊ณ ์ถ์ง๋ง GitHub์์ ํด๋น ์ ์ฅ์์ ์ค์ ํ์ด์ง์ ์ก์ธ์คํ ์ ์๋ ๊ถํ์ด ์์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๊ฒ์ ์ผ๊ฑฐ๋ ๋์๊ฒ ์ง์ ์ผ๋๋ก ํ๋ฝํ ์ ์์ต๋๊น?
์ ๋ ๋ ๋ช ์ ๋ค์ด์คํธ๋ฆผ ๊ธฐ๊ณ ์๋ฅผ oauthlib org์ ์ด๋ํ์ต๋๋ค. ๋ด๊ฐ ๋ณด๊ณ ์ถ์ ์ฌ๋์ด ์๊ฑฐ๋ ์ด ํ ๋ก ์ ์ฝ๋ ์ฌ๋์ด ๋ค๋ฅธ ๋ค์ด์คํธ๋ฆผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์ ํ์ฌ ๋๋ ์ค์ค๋ก oauthlib์ ์ฐธ์ฌํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ ์ฌ๊ธฐ์ ๋๊ธ์ ๋ฌ๊ฑฐ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ฃผ์ธ์!
๊ฐ์ฌ ํด์
@singingwolfboy FUNDING.yml ํ์ผ์ ์ ์ ํ ์์ ํด์ฃผ์ธ์.
@thedrow ์๊ฒฌ์ ๋ช ํํ ํด์ฃผ์๊ฒ ์ต๋๊น?
FUNDING.yml
ํ์ผ์ ๋ง์ํ์๋ ๊ฑด๊ฐ์?poke @singingwolfboy , ๋๋ ๋น์ ์ด requests-oauthlib์ ๋ํ ์ฐ๊ธฐ ๊ถํ์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ๋๊ฐ ์ฐ๋ฆฌ ์ค ์ผ๋ถ์๊ฒ ์ ์ฌํ ๊ถํ์ ๋ถ์ฌํ ์ ์๋์ง ์์ญ๋๊น?
๋๋ ๋ฌธ์ /PR์ ์ ๋ฆฌํ ์ฌ๊ฐ ์๊ฐ์ ์ฐพ์ผ๋ฉด ๊ทธ๋ ๊ฒ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@jezdez ๋ฅผ ์ฐธ์กฐํ์ญ์์ค. DOT๋ฅผ ์ฌ์ฆ๋ฐด๋์์ ์ฌ๊ธฐ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋ํด IRC์ ์ฐ๋ฝํ์ต๋๋ค.
@jleclanche , @jezdez , ์ง๊ธ๊น์ง ์ด๋ค ์ง์ ์ด ์์์ต๋๊น?
@singingwolfboy , ์์ฒญ-oauthlib ์์ ๊ถ/์ฐ๊ธฐ ์ก์ธ์ค์ ๋ํ ์
๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
๊ฐ์ฌ ํด์
@JonathanHuot : @sigmavirus24 ๊ฐ ๋์๊ฒ requests-oauthlib ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์ฃผ์๋ค๊ณ ์๊ฐํ์ง๋ง ๊ทธ๋ ๋ฌด๊ธฐํ ๊ธฐ๊ฐ ๋์ ์คํ ์์ค ๊ฐ๋ฐ์ ์ค๋จํ ๊ฒ ๊ฐ์ต๋๋ค . ์ฌ๊ธฐ์์ ๊ฐ์ฅ ์ข์ ์ต์ ์ ์์ฒญ ์น์ฌ์ดํธ์ ๋ฌธ์ํ๋ ์ง์ ์ฑ๋์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด ๊ฒฝํ์ IRC๋ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์จ๋ผ์ธ ์ํ์ธ ์๊ฐ์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ ์๋ํฉ๋๋ค. #python-requests
๊ด๋ จ ๋ด์ค์์ @jtroussard ๋ ์คํ ์์ค์ ๋ํ ๊ฒฝํ์ด ๋ง์ง๋ ์์ง๋ง ๋ฉ์ธํ ์ด๋๊ฐ ๋๋ ๋ฐ์๋ ๊ด์ฌ์ด ์๋ค๊ณ ๋งํ์ต๋๋ค. ๊ทธ์ ๋๋ ์์ ์ฑํ ์ ํ ์๊ฐ์ ๋ด์ด ๊ทธ์ ์ง๋ฌธ์ ๋ตํ๊ณ ๋ด๊ฐ ํ ์ ์๋ ํ ๊ทธ๊ฐ ์์ํ ์ ์๋๋ก ๋์ธ ๊ฒ์ ๋๋ค.
@jezdez ๋ก๋ถํฐ DOT๋ฅผ ์ฌ์ฆ๋ฐด๋ ๋ฐ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋ํ ๋ต๋ณ์ ๋ฐ์ง ๋ชปํ์ต๋๋ค. ํ์ ์กฐ์น๋ฅผ ์ทจํ๋ ์ฌ๋์ด ์ฌ๊ธฐ ์ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ ์ ์์ต๋๊น?
์๋ ํ์ธ์ ์น๊ตฌ ์ฌ๋ฌ๋ถ, ๊ธฐ๋ค๋ฆฌ๊ฒ ํด์ ์ฃ์กํฉ๋๋ค. django-oauth-toolkit์ด Jazzband ์ ์ค๋ซ๋์ ์์ง ์์๊ธฐ ๋๋ฌธ์ ๋ช ๊ฐ์ง๋ฅผ ๋ช ํํ ํ๊ณ ์ถ์ต๋๋ค. Jazzband์ "open door" ์ ์ฑ (๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์ฌ๋์ด Jazzband GitHub org์ ๊ฐ์ ํ๊ณ ์ง์ ๊ธฐ์ฌํ ์ ์์)์ ์ํด, Jazzband๋ก์ ์ด์ ์ดํ ๊ธฐ์ฌํ ๋ชจ๋ ์ฌ๋์ผ๋ก๋ถํฐ django-oauth-toolkot์ oauthlib ์กฐ์ง์ผ๋ก ์ด์ ํ๋ ๊ฒ์ ๋ํ ์น์ธ์ ์ป๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ๋ก ๋ณด์ ๋๋ค. ํ์ธํฉ๋๋ค.
๋ํ @synasius (์ด์ ์์น์์ Jazzband๋ก repo๋ฅผ ์ด์ ํ ์ฌ๋)์ ์ผ๋ง ์ ์ ์ํ๋กญ๊ฒ ํ๋ก์ ํธ๋ฅผ ์ด๋์๋ ํ์ฌ ํ๋ก์ ํธ ๋ฆฌ๋ @MattBlack85 ์๊ฒ ์ด์ ์ ๋ํ ํ์ธ์ ๋ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ค์์ ๋ณ๊ฒฝ์ ์ํํ ๊ธฐ์ฌ์๋ฅผ ํฌํจํ์ฌ Jazzband๋ก ์ด๋ํ ๋ ์ดํ ๋ฐ์ํ ๋ณ๊ฒฝ ๋ชฉ๋ก์ ๋๋ค. https://github.com/jazzband/django-oauth-toolkit/compare/master@%7B04-18-18 %7D...๋ง์คํฐ
@jleclanche ๋น์ ์ ๊ธฐ๊ณ ์ ์ค ํ ๋ช ์ด์๊ณ IRC์ ์ฌ๊ธฐ์์ oauthlib org๋ก์ ์ด์ ์ ๋ํด ๋ฌผ์์ต๋๋ค. ํ์ธ์ ์ํด ์ฌ๊ธฐ ํฐ์ผ์์ ์ด ์ฌ๋๋ค์๊ฒ ์ฐ๋ฝํ๋ ๋ค๋ฆฌ ์์ ์ ํด์ฃผ์๊ฒ ์ต๋๊น?
์ ๋ ํ์ฌ 12์ 5์ผ๊น์ง ์๋ฆฌ๋ฅผ ๋น์ฐ๊ณ ์์ต๋๋ค. ๊ทธ ๋ ์ง ์ดํ์ ๋์์ด ๋ ์ ์๋๋ก ๋ค๋ฆฌ ์์ ์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค!
๋ฐฉ๊ธ @denizdogan ๊ณผ ๋ํํ์ผ๋ฉฐ ๊ทธ๋ ๋ํ requests-oauthlib๋ฅผ ๋๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ๊ทธ์ ๋๋ ๋ ๋ค ๊ธฐ์กด ์ฝ๋์ ์ํ๊ฐ ์ข์ง ์์ผ๋ฉฐ ์ ๋ฉด์ ์ธ ์ฌ์์ฑ์ด ์ข์ ์๊ฐ์ผ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ ๋์ ๊ฐ๋ฐ์ API๋ฅผ ๋ง๋ค ์๋ ์์ต๋๋ค. ๊ทธ๋ ์๋ก์ด ์ ์ฅ์๋ฅผ ๋ง๋ค๊ณ ๋ฏธ๋์ ์ด๋ ์์ ์์ requests-oauthlib๋ฅผ ๋์ฒดํ๊ฒ ๋ _may_ ์๋ก์ด ํ๋ก์ ํธ์ ๋ํ ์์ ์ ์์ํ ๊ฒ์ ๋๋ค.
ํ๋ก์ ํธ๊ฐ ๋น๋๊ธฐ ์ฐ๊ฒฐ์ ์ํด httpx ๋ ์ง์ํ ์ ์์ต๋๊น?
@thedrow ์ค์ ๋ก ์ฌ๊ฐ ์๊ฐ์ ์์ ํ๊ณ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก requests-oauthlib๋ฅผ ๋ค์ ์์ฑํ์ง๋ง httpx๋ฅผ ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ๊ฐ์ ์ฌํญ์ ์ฐพ์ ๋ ๊ตฌํํ๋ ๊ฒ์ ๋๋ค. ์์ ์ด๋ฆ์ ํฅ๋ฏธ๋กญ์ง ์๊ฒ๋ httpx-oauthlib์ ๋๋ค(์์ง ์จ๋ผ์ธ์ ์ฝ๋๊ฐ ์์).
๊ณต๊ฐ์ ์ด๊ณ ์ ์งํ๊ฒ ๋งํ์๋ฉด, ๋๋ ์ฃผ๋ก requests-oauthlib๊ฐ ์์ ๋ฐฉ์์ผ๋ก ์ค๊ณ๋ ์ด์ ๋ฅผ ํ์ ํ๊ณ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๋ํ ์๊ตฌ ์ฌํญ ์์ด 20/20 ์ดํ๋ก ๋ ๋์ ์์ ์ ์ํํ ์ ์๋์ง ํ์ธํ๊ธฐ ์ํด ์ด ์์ ์ ์ํํ๊ณ ์์ต๋๋ค. . ๋ด๊ฐ ์ด ์ผ์ ํ๋ค๊ณ ํด์ ๋ค๋ฅธ ์ฌ๋์ด ๊ฐ์ ์ผ์ ํ๋ ๊ฒ์ ๋ง์ง ๋ชปํ๊ฒ ํ์ญ์์ค. ์๋ํ๋ฉด ๋น์ ์ ์๋ง๋ ๋๋ณด๋ค ๊ทธ ์ผ์ ๋ ์ ํฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. :)
PyPI์์ ์ ์ ํ ํจํค์ง๋ก ๋๋๋ฉด httpx ์ฌ์ฉ์๊ฐ ์ฃผ์ ๋์์ด ๋ ๊ฒ์ด๋ฉฐ ์๋ฐ๋๋ ์์ ์ ์์ ๋ฐ๋ผ ์์ฒญ์ด ๋์ฒด ์๋จ์ผ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ด๋ฆฌ์์ ์ง๋ฌธ์ผ ์ ์์ง๋ง ๋ค์๊ณผ ๊ฐ์ด ์ง๋ฌธํด์ผ ํฉ๋๋ค.
์ง๊ธ Authlib ์ ๋ถ์กฑํ ๊ฒ์ด ์์ต๋๊น? OAuth ์๋ฒ๋ฅผ ์์ฑํ๊ธฐ ์ํ ๊ฒ์ด๋ผ๊ณ ๋ง ์๊ฐํ๋๋ฐ ํ๊ทธ๋ผ์ธ์ ๊ทธ ๋ถ๋ถ์ ํธ์ํ๊ธฐ ๋๋ฌธ์ ์์ฆ์๋ ํด๋ผ์ด์ธํธ ์ง์๋ฟ๋ง ์๋๋ผ Flask ๋ฐ Django ํตํฉ, ๋น๋๊ธฐ HTTPX ์ง์, PKCE ์ง์, OpenID Connect ๋ฑ๋ ํฌํจํ๋ ๊ฒ ๊ฐ์ต๋๋ค. @lepture ๊ฐ ํฌํฌ๋ฅผ ๋ง๋ ์ง 2๋ ์ด ๋์๊ธฐ ๋๋ฌธ์ ํ์ฌ ํ๋ฐํ๊ฒ ๊ฐ๋ฐ ์ค์ ๋๋ค.
๋๋ httpx-oauthlib๋ฅผ ๋ง๋๋ ๋ฐ ๊ฝค ๋ช ์๊ฐ์ ์์ ์๊ฐ์ ๋ณด๋๊ธฐ ๋๋ฌธ์ ๋ ์์ธํ ์ดํด๋ณด์ง ์์ ๊ฒ์ ๋ํด ์ฝ๊ฐ์ ๋ ์์ ์ ์ฐจ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ์ ๊ทธ๊ฒ์ด ๋ถํ์ํด ๋ณด์ ๋๋ค. ๊ทธ๋ค์ด Authlib๋ฅผ ์ค๊ณํ ๋ฐฉ์์ ๋ด๊ฐ ์ฑ์ทจํ๋ ค๊ณ ํ๋ ๊ฒ๊ณผ ๋งค์ฐ ์ผ์นํ๋ฉฐ ๋๋ก๋ ์ค์ ๋ก ๋ด๊ฐ ์ผ๋์ ๋์๋ ๊ฒ๋ณด๋ค ๋ ์ข์ต๋๋ค.
๊ฐํ oauthlib ๋ฐ requests-oauthlib๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ๋ํด ์๊ฐํ๊ณ Authlib์ ์ง์คํด์ผ ํ ๋๋ผ๊ณ ๋งํ ์ ์์ต๋๊น?
์๋์.
Auth Zero๋ ์ ๋ขฐํ ์ ์๋ ๊ฐ์ธ ํ์ฌ์ ๋๋ค. ๊ทธ๋ค์ ๊ทธ ๋ ธ๋ ฅ์ ์๊ธ์ ์ง์ํ๊ณ ์์ผ๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก ๊ทธ๋ค์ด ๊ด๋ จ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ปค๋ฎค๋ํฐ์ ๋ํ ๊ณต๊ฒฉ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
์๋ ์ด ํ๋ก์ ํธ์ ์ฐธ์ฌํ ์ด์ ๋ ํ์ฌ๋ก์์ Auth0์ด ๊ฒฝ์์ ์ค์ด๋ ๊ฒ์ด ์ต์ ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ๋ชจ๋ ๋ก๊ทธ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ ํ๊ฑฐ๋ ์ ์ดํ๋ โโ๋ฐฉ์์ผ๋ก ๊ตฌ๋งคํ๊ณ ํ์ฉํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์คํํธ์ ๊ฐ๊ฒฉ์ ์ฌ๋ฆฌ๊ณ , ์๋น์ค๋ก ๋ก๊ทธ์ธ์ ํต์ ํ๊ณ , ๊ธฐ์ ์์ ๊ฐ์ ๋ก ์ฌ์ฉํ๋ ค๊ณ ํด์ ๊ทธ๋ฐ ์ง์ ๊ณ์ ํด์ ์ ํ ๋ฏฟ์ง ์์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก, ์ฐ๋ฆฌ๋ ์ด ํ๋ก์ ํธ๊ฐ ๊ทธ๋ค์ด ๋ชจ๋ ๊ฒ์ ํต์ ํ์ง ์๋๋ค๋ ๊ฒ์ ๋ณด์ฅํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ์กด์ฌํด์ผ ํฉ๋๋ค. ๊ณต์์ ์ผ๋ก ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌผ๊ฑด์ด ๊นจ์ง๋ ๊ฒฝํฅ์ด ์์ผ๋ฏ๋ก BORG๋ก ๋ด ๋๋ค.
@duaneking ์ดํดํฉ๋๋ค - Auth0์ ๋น์ฆ๋์ค ๊ดํ์ด๋ Authlib์ ์ฐ๊ฒฐ๋์ด ์๋ค๋ ์ฌ์ค์กฐ์ฐจ ๋ชฐ๋์ต๋๋ค. ๊ทํ์ ์๋ต์ ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ Authlib ์ฌ์ฉ์ ๋ํ ์์ด๋์ด๋ฅผ ์ฌ๊ณ ํ๊ฒ ์ต๋๋ค. ์ฆ, ๋ด๊ฐ ์ฐพ์ ๊ฒฐ๊ณผ Auth0์ ํ๋ก์ ํธ์ "ํ์์"์ผ ๋ฟ์ด๋ฉฐ Hsiaoming์ Auth0๊ณผ ๊ด๋ จ์ด ์๋ ์์ฒด ์ฌ์ ์ ์ด์ํ๊ณ ์์ต๋๋ค. ๋ด ์ดํด๊ฐ ๋ง์ต๋๊น? ์๋๋ฉด ํ ๋ผ ๊ตฌ๋ฉ์ด ๋ ๊น์ด ์ก์ต๋๊น?
์๋์.
Auth0๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก "ํ์"์ ์ํํฉ๋๋ค. ๊ทํ๊ฐ ๋ณด๋ ๊ฒ์ ํ๋ฐํธ ์๋ ๋ถ๋ถ์ ๋๋ค. ํ๋ก์ ํธ๋ฅผ ํตํด ์ง์ ๋๋ ๊ฐ์ ์ ์ผ๋ก ๋์ ์ ๊ทน์ ์ผ๋ก ๊ฐ์ ธ๊ฐ๋ ๋ชจ๋ ๊ฐ๋ฐ์๋ ๋ฐฑ์๋์์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ผ/์ ์ด/์ํฅ์ ๋ฐ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํด์ผ ํฉ๋๋ค. ํ์ฌ๊ฐ ๋ธ๋๋ฉ์ ์ง์ํ๊ณ ํ์ฌ์ ๋ํ ์ํ์ ์ํํ๊ธฐ ์ํด ๊ณต๊ฐ์ ์ผ๋ก ๋งํ ์ ์๋ ๊ณ์ฝ์ ์๋ช ํ๋๋ก ํ์ฌ์์ ๊ฐ์ํ๋ ๊ฒ์ ๋๋ฌธ ์ผ์ด ์๋๋๋ค.
๊ทธ๋ค์ด ๋์๊ฒ ์ฐ๋ฝ์ ์๋ํ์ ๋ ๊ทธ๊ฒ์ด ์ ํํ ์ ์๋ ๊ฒ์ด์๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก ๋๋ ๊ทธ๋ค์ด "ํ์"ํ๊ฑฐ๋ "์ง์"ํ๋ ํ๋ก์ ํธ์ ์ด์ ๋์ํ ๊ฐ๋ฐ์ ์์ ๋ ์์ฌ๋๋ ํ๋ก์ ํธ์ ๋ํด ์ ํ ์ ๋ขฐํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ๋ด ์๊ฐ์ ๊ทธ๋ค์ ์ ๋ขฐ์ฑ์ ํจ๊ณผ์ ์ผ๋ก ํ์์ต๋๋ค.
@denizdogan @duaneking Auth0์ Authlib์ ํ์์์ผ ๋ฟ์ด๋ฉฐ Authlib์ "์ ์ด" "๊ด๋ฆฌ" "๋ผ์ด์ ์ค" ๋๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ด๊ณ ๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
Auth0์์ ๊ทธ๋ค์ ๋ํ ํตํฉ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ์ ์๊ฒ ์ฐ๋ฝ์ ์๋ํ์ง๋ง ๊ฑฐ์ ํ์ต๋๋ค. Authlib์ auth0 ๊ด๋ จ ์ฝ๋๊ฐ ํ์๋์ง ์์ต๋๋ค. ๊ทธ๊ฒ ์ ๋ฌธ์ ์ธ์ง ์ดํด๊ฐ ์ ๊ฐ๋๋ฐ ์ ๋ณด๊ฐ ๊ณต๊ฐ๋์ด ์๊ณ https://www.patreon.com/lepture๋ฅผ ํตํด ๋ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค. ๋๊ตฌ๋ Patreon์ด๋ GitHub๋ฅผ ํตํด ์ ๋ฅผ ์ง์ํ ์ ์์ต๋๋ค.
๊ทธ ์ธ์๋ readme์์ ๋ค๋ฅธ ํ์์ Authing
๋ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ OAuthlib ์์ฒด๋ Auth0 ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. https://pyjwt.readthedocs.io/en/latest/
๋๋ Auth0์ ์ ๋ขฐํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ์ ์ ์ ๋ด ์๊ฐ์ ๋น์ค๋ฆฌ์ ์ ๋๋ค. ๊ทธ๋ค์ด ๋์ ๋์ง๊ณ ์ถ์ดํ๋ค๋ ์ฌ์ค์ ๊ด์ฐฎ์ง๋ง ๊ฒฐ์ฝ ๊ทธ๋ค์๊ฒ ํต์ ๋ ฅ์ด๋ ์ํฅ๋ ฅ์ ์ฃผ์ด์๋ ์๋ฉ๋๋ค.
์ ์ ๊ธฐ์ ๊ณผ ์์ ๋จ์ฒด(๋๋ ๋๊ตฌ์๊ฒ๋)์์ ์ฌ์ฉ์๋น ์์ต์ ๊ฑฐ๋๋ ค๋ ๊ทธ๋ค์ ๋ชฉํ๋ ์ปค๋ฎค๋ํฐ, ๋ชจ๋ ๊ธฐ์ ์ ๋ชฉํ ๋ฑ๊ณผ ์ ๋ฐ๋์ด๋ฉฐ ์ฌ์ฉ์๋น ๊ฐ๊ฒฉ์ ์ํ๋ ํ์ฌ์ ํน์ฑ์ ์ปค๋ฎค๋ํฐ์ ์ ๋์ ์ผ๋ก ๋ณด์ฌ์ผ ํฉ๋๋ค. ์์ต์ ์ ๊ณตํ๊ธฐ ์ํด ๊ฐ๋ฅํ ํ ๋์์ผ ํฉ๋๋ค. ๊ทธ๋ค์ ๋น์ฆ๋์ค ๋ชจ๋ธ์ ์คํ ์์ค, ์ ์ ๊ธฐ์ , ๋ชจ๋ ํ์ฌ ๋ฑ์ ๋ํ ๊ณต๊ฒฉ์ ๋๋ค.
๊ฐํ oauthlib ๋ฐ requests-oauthlib๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ๋ํด ์๊ฐํ๊ณ Authlib์ ์ง์คํด์ผ ํ ๋๋ผ๊ณ ๋งํ ์ ์์ต๋๊น?
๊ทธ๋งํ ๊ฐ์น๊ฐ ์๊ธฐ ๋๋ฌธ์ OAuthlib๊ฐ Authlib์ ๋นํด ๊ฐ์ง๊ณ ์๋ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ถ๊ฐ์ง๋ก ์ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค.
์ ์
Authlib์ httpx ํตํฉ์ ์์ง๋ง ๋ฌธ์ ๊ฐ ๋๋ ๋ฒ์ ์
๋๋ค. ์ด ๋ฌธ์ ์ ๋ํด lepture/authlib/pull/219, lepture/authlib/pull/209๋ผ๋ 2๊ฐ์ PR์ด ์ ์ถ๋์์ผ๋ฉฐ ์ข
๋ฃ๋์์ต๋๋ค.
๋๋ ๋ํ @lepture ์ ์ ์๊ถ ์๋ ์ ์ฑ
์ ๋ํด ์์ง๋ง 0์ด ์๋ ์ฐ๋ ค๊ฐ ์์ต๋๋ค. ๋์๊ด ์๋น์๋ก์ 100% ์ดํดํ ์ ์์ง๋ง, ๊ธฐ์ฌ์๋ก์ CC0์ผ๋ก ์ถ์ํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ๋๋ ๊ทธ๋ค๊ณผ ๊ทธ๊ฒ์ ๋ํด ์์ธํ ๋
ผ์ํ์ง ์์์ต๋๋ค.
๋๋ ์ ์ฒด ์ปค๋ฎค๋ํฐ ์์ ์ ์์ ํ๋ ํ ์ฌ๋์ ํฌ์ด ์๋๋๋ค.
๋๋ ์ ์ง ๋ณด์๊ฐ๋๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค.
์๋ ํ์ธ์ @auvipy ๋, ํ๋ก์ ํธ์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ์ด๋์ฅ์ ๋ณด๋์ต๋๋ค!
์๋ ํ์ธ์ @auvipy ๋, ํ๋ก์ ํธ์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ์ด๋์ฅ์ ๋ณด๋์ต๋๋ค!
์์๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ์ ๋ณํฉ์ด๋ ์น์ธ์ด ์์ต๋๋ค.
๋ค์ ํ์ธํ ์ ์์ต๋๊น? ์กฐ์ง, ํ, ํ๋ก์ ํธ์ ๋ํด ํผ๋์ค๋ฌ์ ๋ ๊ฒ ๊ฐ์์. ์ด์ oauthlib ์กฐ์ง์ ๋ชจ๋ ์ฌ๋๊ณผ ๋ ๋ง์ ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@denizdogan @duaneking Auth0์ Authlib์ ํ์์์ผ ๋ฟ์ด๋ฉฐ Authlib์ "์ ์ด" "๊ด๋ฆฌ" "๋ผ์ด์ ์ค" ๋๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ด๊ณ ๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
Auth0์์ ๊ทธ๋ค์ ๋ํ ํตํฉ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ์ ์๊ฒ ์ฐ๋ฝ์ ์๋ํ์ง๋ง ๊ฑฐ์ ํ์ต๋๋ค. Authlib์ auth0 ๊ด๋ จ ์ฝ๋๊ฐ ํ์๋์ง ์์ต๋๋ค. ๊ทธ๊ฒ ์ ๋ฌธ์ ์ธ์ง ์ดํด๊ฐ ์ ๊ฐ๋๋ฐ ์ ๋ณด๊ฐ ๊ณต๊ฐ๋์ด ์๊ณ https://www.patreon.com/lepture๋ฅผ ํตํด ๋ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค. ๋๊ตฌ๋ Patreon์ด๋ GitHub๋ฅผ ํตํด ์ ๋ฅผ ์ง์ํ ์ ์์ต๋๋ค.
๊ทธ ์ธ์๋ readme์์ ๋ค๋ฅธ ํ์์
Authing
๋ ๋ณผ ์ ์์ต๋๋ค.๊ทธ๋ฆฌ๊ณ OAuthlib ์์ฒด๋ Auth0 ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. https://pyjwt.readthedocs.io/en/latest/