Sessions: рд╕реБрд░рдХреНрд╖рд┐рддрдХреБрдХреА: рдорд╛рди рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЕрдХреНрддреВре░ 2013  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: gorilla/sessions

рдирдорд╕реНрддреЗ,
websocket.Conn.Request() рд╕реЗ рдЕрдиреБрд░реЛрдз рдкрд░ store.Get() рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ

session, err := store.Get(conn.Request(), "my_session")

рддреНрд░реБрдЯрд┐ рдЧреЛрд░рд┐рд▓реНрд▓рд╛/рд╕рд┐рдХреНрдпреЛрд░рдХреНрдпреВрдХреА рдХреЗ VerifyMac рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдХреБрдВрдЬреА/рдкреНрд░рдорд╛рдг-рдкрддреНрд░ рдПрдореНрдмреЗрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЬреИрд╕реЗ os.Getenv("APPNAME_SESSION_KEY") ред рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЖрдкрдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - k8s рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд╣рд╕реНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП: https://kubernetes.io/docs/concepts/configuration/secret/#using -secrets-as-environment-variables

рд╕рднреА 9 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛? :)

рдореИрдВ рдЗрд╕реЗ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ/рдЗрд╕реЗ рд╣рд▓ рдХрд░реЗрдВред

рдХреНрдпрд╛ рддреНрд░реБрдЯрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрд╕рдВрдЧрдд рд╣реИ? рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?

рдЧреБрд░реБ, 18 рдЬреВрди 2015 рдЕрдкрд░рд╛рд╣реНрди 2:04 рдкрд░ рдбреЛрдорд┐рдирд┐рдХ рд╣реИрдореЛрди рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореИрдВ рдЗрд╕реЗ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ/рдЗрд╕реЗ рд╣рд▓ рдХрд░реЗрдВред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/gorilla/sessions/issues/16#issuecomment -113047123ред

рдЬрдм рдореИрдВ рддреНрд░реБрдЯрд┐ (500 рдХреЗ рдмрдЬрд╛рдп) рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдХреБрдХреА рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдПрдХ рд╡реИрдз рдкреГрд╖реНрда рд▓реМрдЯрд╛рдХрд░ рдЗрд╕реЗ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдСрде/рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рд╕рддреНрд░ рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рддрд░рдл рдПрдХ рдХреБрдХреА рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рджреАрд░реНрдШрд╛рд╡рдзрд┐ рдореЗрдВ рдЗрд╕реЗ рдХрдо рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рд▓рд╛рд╣ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореИрдВрдиреЗ рддреНрд░реБрдЯрд┐ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЧреЛрд░рд┐рд▓реНрд▓рд╛/рд╕рддреНрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдирдпрд╛ рд╕рддреНрд░ рдЕрднреА рднреА рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИред рдЖрдк рдЕрднреА рднреА session.Save() рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдж рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рдирдИ, рдорд╛рдиреНрдп рд╕рддреНрд░ рдХреБрдХреА рд╣реЛрдЧреАред

рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдЗрд╕реЗ рдкрд╣рдЪрд╛рдирдирд╛ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛, рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдерд╛
var store = sessions.NewCookieStore(securecookie.GenerateRandomKey(10))
рдЗрд╕рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реВрдВ, рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдХреБрдХреА рдХреЛ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рд╣реИ, рддреЛ рдХреБрдХреА рдХреЛ рдбреАрдХреЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирдИ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреБрдВрдЬреА рдирд╣реАрдВ рдЬрдм рдХреБрдХреА рдкрд╣рд▓реА рдмрд╛рд░ рдмрдирд╛рдИ рдЧрдИ рдереАред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдФрд░ рднреА рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрднреА-рдХрднреА рдПрдХ рдиреЛрдб (рдорд╢реАрди) рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рд╡рд╣ рдиреЛрдб рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕рд╕реЗ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рди рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдХреБрдВрдЬреА рдбрд╛рд▓реЗрдВ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рди рдХрд░рдирд╛ рдкрдбрд╝реЗ, рдЬреИрд╕реЗ:
var store = sessions.NewCookieStore([]byte("asdaskdhasdhgsajdgasdsadksakdhasidoajsdousahdopj"))

рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдХреБрдВрдЬреА/рдкреНрд░рдорд╛рдг-рдкрддреНрд░ рдПрдореНрдмреЗрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЬреИрд╕реЗ os.Getenv("APPNAME_SESSION_KEY") ред рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЖрдкрдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - k8s рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд╣рд╕реНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП: https://kubernetes.io/docs/concepts/configuration/secret/#using -secrets-as-environment-variables

рдореИрдВ рднреА рдПрдХ рд▓рдВрдмреЗ рдХреАрдХреНрд▓реЛрдХ рдЯреЛрдХрди рдХреЗ рдХрд╛рд░рдг рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реВрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

elithrar picture elithrar  ┬╖  25рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

marksalpeter picture marksalpeter  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

elithrar picture elithrar  ┬╖  22рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gtaylor picture gtaylor  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

luca-moser picture luca-moser  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ