μλ
,
websocket.Conn.Request()μ μμ²μ λν΄ store.Get()μ νΈμΆνλ €κ³ ν λ μ΄ μ€λ₯κ° λ°μν©λλ€.
session, err := store.Get(conn.Request(), "my_session")
μ€λ₯λ gorilla/securecookieμ verifyMac κΈ°λ₯μμ λ°μν©λλ€.
μ΄λ»κ² ν΄κ²°νμ ¨λμ? :)
λλ μ΄κ²μλ³΄κ³ μμΌλ©° κ·Έκ²μ μ§μ°κ±°λ ν΄κ²°νλ λ°©λ²μ μκ³ μΆμ΅λλ€.
μ€λ₯ λμμ΄ μΌκ΄μ±μ΄ μμ΅λκΉ? μλλ©΄ μΌλΆ μμ²μλ§ μν₯μ μ€λκΉ?
2015λ
6μ 18μΌ λͺ©μμΌ μ€ν 2:04 Dominic Hamon [email protected]
μΌλ€:
λλ μ΄κ²μλ³΄κ³ μμΌλ©° κ·Έκ²μ μ§μ°κ±°λ ν΄κ²°νλ λ°©λ²μ μκ³ μΆμ΅λλ€.
β
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ GitHubμμ νμΈνμΈμ.
https://github.com/gorilla/sessions/issues/16#issuecomment -113047123.
μ€λ₯κ° λ°μνμ λ(500 λμ ) μ ν¨ν νμ΄μ§λ₯Ό λ°νν λ€μ λΈλΌμ°μ μμ μΏ ν€λ₯Ό μλμΌλ‘ μμ νμ¬ μ΄λ₯Ό μνν μ μμμ΅λλ€. μΈμ¦/μνΈν ν€λ₯Ό μ λ°μ΄νΈνμ§λ§ κΈ°μ‘΄ μΈμ μ λΈλΌμ°μ μΈ‘μ μΏ ν€κ° μκΈ° λλ¬Έμ λ°μνλ€κ³ μκ°ν©λλ€.
λλ μ΄κ²μ μννλ μ¬λ°λ₯Έ λ°©λ²μ΄ μ₯κΈ°μ μΌλ‘ 무μμΈμ§ μμ§ λͺ»νλ―λ‘ μ΄λ€ μ‘°μΈμ΄λΌλ νμν©λλ€.
μ΄κ²μ νΌνλ €λ©΄ μ ν리μΌμ΄μ μ΄ ν€λ₯Ό λ§μ΄κ·Έλ μ΄μ νλ λ°©λ²μ΄ νμν©λλ€.
λλμ΄ λ¬Έμ μ λΆλͺμ³€λ€. κ³ λ¦΄λΌ/μΈμ
λ¬Έμ μμ μ μΈμ
μ΄ μ¬μ ν λ°νλλ€κ³ session.Save()
νΈμΆν μ μμΌλ©° μ΄νμ μμ²νλ λΈλΌμ°μ λ μ ν¨ν μ μΈμ
μΏ ν€λ₯Ό κ°κ² λ©λλ€.
λλ κ°μ λ¬Έμ μ μ§λ©΄νκ³ μ²μμλ λ°κ²¬νκΈ°κ° μ½κ° μ΄λ €μ μ΅λλ€. λ¬Έμ λ λ΄κ° κ°μ§κ³ μλ€λ κ²μ
λλ€.
var store = sessions.NewCookieStore(securecookie.GenerateRandomKey(10))
κ·Έλμ μλ²λ₯Ό λ€μ μμν λλ§λ€ μ μ₯μμ λν μ ν€κ° μμ±λκ³ μ΄μ μ μΉ λΈλΌμ°μ μ μΏ ν€λ₯Ό μ μ₯νλ€λ©΄ μ ν€λ₯Ό μ¬μ©νκ³ μκΈ° λλ¬Έμ μΏ ν€λ₯Ό λμ½λ©νλ €κ³ ν λ μ€λ₯κ° λ°μν©λλ€. μΏ ν€κ° μ²μ μμ±λμμ λμ ν€κ° μλλλ€.
μ΄κ²μ λλλ‘ λ
Έλ(λ¨Έμ )λ₯Ό λ€μ μμν΄μΌ νκ³ ν΄λΉ λ
Έλκ° μ체 ν€λ₯Ό μμ±νμ¬ λ€λ₯Έ λ
Έλμ μΆ©λμ μΌμΌν¬ μ μκΈ° λλ¬Έμ kubernetesμ λ°°ν¬ν λ μ΅μ
μ κ²½μ° λ°κ²¬νκΈ° μ΄λ €μ΄ λ¬Έμ μΌ μ μμ΅λλ€. μμμ ν€λ₯Ό μμ±νμ§ μλ κ²μ΄ μ’μ΅λλ€. λμ μλμΌλ‘ ν€λ₯Ό μ½μ
νμ¬ λ€μκ³Ό κ°μ λ¬Έμ μ μ§λ©΄νμ§ μλλ‘ νμμμ€.
var store = sessions.NewCookieStore([]byte("asdaskdhasdhgsajdgasdsadksakdhasidoajsdousahdopj"))
μμ€ μ½λμ ν€/μ격 μ¦λͺ
μ ν¬ν¨ν΄μλ μ λ©λλ€. λμ νκ²½μ ν΅ν΄ μ λ¬ν΄μΌ ν©λλ€(μ: os.Getenv("APPNAME_SESSION_KEY")
. ν΄λΉ νκ²½μ λ°°ν¬ μμ€ν
μ μν΄ λΆνΈμ€νΈλ©λ μ μμ΅λλ€. k8sμ κ²½μ° Secrets κΈ°λ₯μ μ¬μ©νμ¬ https://kubernetes.io/docs/concepts/configuration/secret/#using -secrets-as-environment-variables
λλ λν κΈ΄ keycloak ν ν°μΌλ‘ μΈν΄ μν₯μ λ°μ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
μμ€ μ½λμ ν€/μ격 μ¦λͺ μ ν¬ν¨ν΄μλ μ λ©λλ€. λμ νκ²½μ ν΅ν΄ μ λ¬ν΄μΌ ν©λλ€(μ:
os.Getenv("APPNAME_SESSION_KEY")
. ν΄λΉ νκ²½μ λ°°ν¬ μμ€ν μ μν΄ λΆνΈμ€νΈλ©λ μ μμ΅λλ€. k8sμ κ²½μ° Secrets κΈ°λ₯μ μ¬μ©νμ¬ https://kubernetes.io/docs/concepts/configuration/secret/#using -secrets-as-environment-variables