Google OAuth Setup
About
Spring Securityλ‘ OAuth ꡬνν λ μ£Όμ λ±λ‘νλ κ² λ무 λ§κ³ ν·κ°λ €μ λ νΌλ°μ€λ₯Ό κ³μ λ³΄κ² λ©λλ€. κ³ ν΅μ λ§μ΄ λ°μ μ΄ μ°Έμ μ 리ν΄λ‘λλ€.
Keywords
OAuth
Client ID
,Client Secret
- ν΄λΉ IDμ secretμΌλ‘ μ΄λ€ κ΅¬κΈ OAuth μ±μΈμ§ μλ³νκ³ λ‘κ·ΈμΈν κΆνμ μ»μ΅λλ€. κ΅¬κΈ (GCP)μμ OAuth μ±μ λ§λ€κ³ λ°κΈλ°μ μ μμ΅λλ€.λ°±μλκ° Redirect ν¬ν¨ λ‘κ·ΈμΈ μ²λ¦¬λ₯Ό λͺ¨λ νλ μΉ λ²μ λ‘κ·ΈμΈμ κ²½μ° λ°±μλμ λ±λ‘ν΄μ€μΌ ν©λλ€. μ¬κΈ°μλ μ΄ λ°©μμ κΈ°μ€μΌλ‘ κ°μ΄λλ₯Ό μμ±ν©λλ€.
μλ°μ€ν¬λ¦½νΈ λ°©μ λ‘κ·ΈμΈμ κ²½μ°μ νλ‘ νΈμλμ λ±λ‘ν΄μΌ ν©λλ€.
λ°±μλ OAuth λ‘κ·ΈμΈ URL - e.g.,
http://localhost:8080/oauth2/authorize/google?redirect_uri=http://localhost:3000/auth/redirect
νλ‘ νΈμλμμ 맨 μ²μ λ°±μλλ‘ μμ²νλ κ΅¬κΈ λ‘κ·ΈμΈ λ²νΌμ λ£μ΄μ£Όλ μ£Όμμ λλ€.
Google λ‘κ·ΈμΈ λ°©μμΌλ‘ λ‘κ·ΈμΈ ν λ€ νλ‘ νΈμλμ
/auth/redirect
λ‘ λμμλ¬λΌλ μμ²μ λλ€.
λ°±μλ Redirect URI - e.g.,
http://localhost:8080/login/oauth2/code/google
κ΅¬κΈ μ±μμ Authorized Redirect URIλ‘ λ±λ‘ν΄μ€μΌ ν©λλ€. ꡬκΈμμ ν ν°μ λ°κΈνκ³ ν΄λΉ μ£Όμλ‘ κ°κ² λλ λΆλΆμ λλ€.
νλ‘ νΈμλλ μ νμ μμ΅λλ€.
νλ‘ νΈμλ Redirect URI - e.g.,
http://localhost:3000/auth/redirect
λͺ¨λ λ‘κ·ΈμΈ μμ μ λ§μΉλ©΄ λ°±μλμμ νλ‘ νΈμλμ ν΄λΉ μ£Όμλ‘ redirect μν΅λλ€.
λ°±μλμμ λ±λ‘ν΄μ€μΌ ν©λλ€.
νλ‘ νΈμλμμ ν΄λΉ νμ΄μ§λ₯Ό λ§λ€κ³ , λ°±μλμμ 쿼리μ€νΈλ§μ λ£μ΄μ€ ν ν°μ μ²λ¦¬νλ λ‘μ§(μΏ ν€ μ μ₯ λ±)μ ꡬνν΄μΌ ν©λλ€. μ¬κΈ°μ λμ¨ ν ν°μ Authorization ν€λμ λ£κ³ μΈμ¦λ μμ²μ λ³΄λΌ μ μμ΅λλ€.
κ΅¬κΈ μ±μμλ μ νμ μμ΅λλ€.
Details
μΌλ¨ client-idμ client-secretμ λ λ€ λ±λ‘ν΄μ€μΌ ν©λλ€. JavaScript λ²μ μ λ‘κ·ΈμΈμ΄ μλ μΉ λ²μ μ λ‘κ·ΈμΈμ΄λ―λ‘ λ°±μλ μͺ½μ λ£μ΅λλ€. (application-oauth.yml
)
Google OAuth Appμμ Authorized Redirect URI μΆκ°
μλ₯Ό λ€λ©΄
http://localhost:8080/login/oauth2/code/google
μ λλ€.μ΄ μ£Όμλ₯Ό Googleμ Authorized Redirect URIμ λ£μ΄μ€μΌ ν©λλ€. λ£μ§ μμΌλ©΄ ꡬκΈμμ
unauthorized_redirect_uri
μλ¬κ° λ°μν©λλ€.
λ°±μλμμ νλ‘ νΈμλλ‘ λμκ°λ authorized redirect URI μΆκ°
λ°±μλμμ SecurityConfiguration ꡬν μ authorization κ΄λ ¨ URI μΆκ°
νλ‘ νΈμλμμ λ°±μλλ‘ μμ²νλ λ²νΌ ꡬν
μ΄λ urlμ λ¨μ
<a>
νκ·Έλ₯Ό λ£μ λ²νΌμhref
μμ±μurl
μ λ£μ΄μ£ΌκΈ°λ§ νλ©΄ λ©λλ€.
νλ‘ νΈμλμμμ redirect URIμ λν μ²λ¦¬
λ‘κ·ΈμΈμ μλ£νκ³ λ°±μλμμ JWT ν ν° κ°μ νλ‘ νΈμλμ Redirect URLλ‘ μΏΌλ¦¬μ€νΈλ§μ ν΅ν΄ 보λ΄μ€λλ€. (
?access_token=XX&refresh_token=XXX
)/auth/redirect
νμ΄μ§λ₯Ό λ§λ€κ³ , ν΄λΉ νμ΄μ§μ μ λ¬λ 쿼리λ₯Ό μ½μ΅λλ€. 쿼리λ₯Ό μ½μ΄ ν ν°μ κ°μ Έμ€κ³ μΏ ν€μ μ μ₯ν΄μ€μ μ±μμ κ΄λ¦¬ν΄μ£Όλ©΄ λ©λλ€.μ΄κ² νλ‘ νΈμλμ
authorized-redirect-uri
μ λλ€. λ°±μλμμλapplication-oauth.yml
μμ λ±λ‘ν΄μ€λλ€.
Reference
λ νΌλ°μ€λ λ€μ κΈ νλλ‘ λ€ ν΄κ²°μ΄ λ©λλ€.
[Spring Boot] OAuth2 μμ λ‘κ·ΈμΈ κ°μ΄λ (ꡬκΈ, νμ΄μ€λΆ, λ€μ΄λ², μΉ΄μΉ΄μ€)
Last updated