Sessions: рдХреНрд░реЙрд╕ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕рддреНрд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдЬреБрд▓ре░ 2016  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: gorilla/sessions

рдЧреЛрд░рд┐рд▓реНрд▓рд╛/рд╕рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд░реЙрд╕ рд╕рд░реНрд╡рд░ рд╕рддреНрд░ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рд░реНрд╡рд░ рд╣реИрдВред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╕рд░реНрд╡рд░ рдореЗрдВ рд▓реЙрдЧрд┐рди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╡рд╣ рджреВрд╕рд░реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рднреА рд▓реЙрдЧрд┐рди рдХрд░реЗрдЧрд╛ред

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

@CasperHK рдЖрдкрдХреЛ рдХреБрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣реА рдорд┐рд▓рддрд╛ рд╣реИ: рдЬрдм рддрдХ рд╕рд░реНрд╡рд░ рдПрдХ рд╣реА рдбреЛрдореЗрди (рдЬреИрд╕реЗ github.com, рдпрд╛ *.github.com) рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рддрдм рддрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдХреБрдХреА рднреЗрдЬреА рдЬрд╛рдПрдЧреАред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╕рддреНрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реНрдЯреЛрд░ рдХрд╛ рднреА

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

@CasperHK рдЖрдкрдХреЛ рдХреБрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣реА рдорд┐рд▓рддрд╛ рд╣реИ: рдЬрдм рддрдХ рд╕рд░реНрд╡рд░ рдПрдХ рд╣реА рдбреЛрдореЗрди (рдЬреИрд╕реЗ github.com, рдпрд╛ *.github.com) рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рддрдм рддрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдХреБрдХреА рднреЗрдЬреА рдЬрд╛рдПрдЧреАред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╕рддреНрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реНрдЯреЛрд░ рдХрд╛ рднреА

gorilla/session рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рд╡рд░реНрд╖ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЧреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдбреЛрдореЗрди рдХреЗ рддрд╣рдд 12 ubuntu рд╕рд░реНрд╡рд░ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рднреА рд╡реЗрдм рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рд╕рддреНрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ MySQL-рдЖрдзрд╛рд░рд┐рдд рд╕рддреНрд░ рд╕реЗрд╡рд╛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ MySQL-рдЖрдзрд╛рд░рд┐рдд рдХреНрд░реЙрд╕ рд╕рд░реНрд╡рд░ рд╕рддреНрд░ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛ред рдпрджрд┐ srinathgs/mysqlstore рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд╛рдо рдХрд╛ рдЕрдзреНрдпрдпрди рдФрд░ рд╕рд░рд▓реАрдХрд░рдг рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреБрдХреАрд╕реНрдЯреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреБрдВрдЬреА рд╣реИ,
рдФрд░ рдПрдХ рд╣реА рдбреЛрдореЗрди рдкрд░ рдореМрдЬреВрдж рд╣реИ, рдпрд╣ рдЬреИрд╕реЗ рд╣реИ рд╡реИрд╕реЗ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╕реВрд░реНрдп рдкрд░, 24 рдЬреБрд▓рд╛рдИ, 2016 рдХреЛ рд░рд╛рдд 10:48 рдмрдЬреЗ рдХреИрд╕реНрдкрд░ рдПрд▓рдЖрдИ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЧреЛрд░рд┐рд▓реНрд▓рд╛/рд╕рддреНрд░ рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдЕрд╕рд▓ рдореЗрдВ, рдореИрдВ рдЧреЛ рдСрди my . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рдореЗрд░реЗ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдЕрдВрддрд┐рдо рд╡рд░реНрд╖ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ 12 ubuntu рд╕рд░реНрд╡рд░ рд╣реИрдВ
рдПрдХ рд╣реА рдбреЛрдореЗрдиред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рд╣реЛрдЧрд╛
MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдПрдХ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ
рд╕рднреА рд╡реЗрдм рдореЗрдВ рд╕рддреНрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП MySQL-рдЖрдзрд╛рд░рд┐рдд рд╕рддреНрд░ рд╕реЗрд╡рд╛
рд╕рд░реНрд╡рд░ред
рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ MySQL-рдЖрдзрд╛рд░рд┐рдд рдХреНрд░реЙрд╕ рд╕рд░реНрд╡рд░ рд╕рддреНрд░ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛ред рдЕрдЧрд░ "
github.com/gorilla/sessions" рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╣реИ
рдореЗрд░реЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд╛рдо рдХрд╛ рдЕрдзреНрдпрдпрди рдФрд░ рд╕рд░рд▓реАрдХрд░рдг рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/gorilla/sessions/issues/87#issuecomment -234845955,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AABIcNfC7H8DrZq5NX1Tu7W_Vd1LM5BIks5qZE43gaJpZM4JTizF
.

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреБрдХреАрд╕реНрдЯреЛрд░ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреБрдВрдЬреА рдХреНрдпрд╛ рд╣реИрдВ? рдХреБрдХреАрд╕реНрдЯреЛрд░ рдХрд╛ рдЕрд░реНрде рд╣реИ gorilla/sessions рдкреИрдХреЗрдЬ?

рд╣рд╛рдБред http://www.gorillatoolkit.org/pkg/sessions рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ -

  • something-very-secret рд╕рд╛рдЗрдирд┐рдВрдЧ рдХреА рд╣реИ
  • sessions.NewCookieStore рдПрдХ *CookieStore , рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛рдмреЗрд╕/рд╕рд╛рдЭрд╛ рд╕реНрдерд┐рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
import (
    "net/http"
    "github.com/gorilla/sessions"
)

var store = sessions.NewCookieStore([]byte("something-very-secret"))

func MyHandler(w http.ResponseWriter, r *http.Request) {
    // Get a session. We're ignoring the error resulted from decoding an
    // existing session: Get() always returns a session, even if empty.
    session, err := store.Get(r, "session-name")
    if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }

    // Set some session values.
    session.Values["foo"] = "bar"
    session.Values[42] = 43
    // Save it before we write to the response/return from the handler.
    session.Save(r, w)
}

рдореИрдВрдиреЗ рдХреЛрдб рдкрдврд╝рд╛ рд╣реИред рдЬрдм рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдБ

var store = sessions.NewCookieStore([]byte("something-very-secret")) 

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ store рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдФрд░ рдЗрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реЗ рдХрд┐рд╕ рдкреЗрдЬ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, (рдЬреИрд╕реЗ index , projbrwsr , codeeditor ) рдФрд░ рдЙрди рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рд╡рд╣реА Store ред
image

something-very-secret рдХреЛ рдПрдХ рдЧреБрдкреНрдд рдХреБрдВрдЬреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ NewCookieStore() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреНрдпрд╛ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдкрдиреЗ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреЛрд░ (session.Store) рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдВред

рд╕реЛрдо, 25 рдЬреБрд▓рд╛рдИ, 2016 рдХреЛ рд╕реБрдмрд╣ 8:57 рдмрдЬреЗ рдХреИрд╕реНрдкрд░ рдПрд▓рдЖрдИ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВрдиреЗ рдХреЛрдб рдкрдврд╝рд╛ рд╣реИред рдЬрдм рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдБ

var store = session.NewCookieStore([]byte("something-very-secret"))

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╕реНрдЯреЛрд░ рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ
рдкрд░рд┐рдпреЛрдЬрдирд╛ред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░
рдЗрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ рд╣реИ
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реЗ рдХрд┐рд╕ рдкреЗрдЬ рдкрд░ рд╕реЗрд╡рд╛ рджреЗ рд░рд╣реЗ рд╣реИрдВ, (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛,
projbrwsr, codeeditor) рдФрд░ рдЙрди рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЙрд╕реА рд╕реНрдЯреЛрд░ рдкрд░ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
[рдЫрд╡рд┐: рдЫрд╡рд┐]
https://cloud.githubusercontent.com/assets/6957401/17107410/a34dcc50-52c1-11e6-92f7-a4227da60244.png

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/gorilla/sessions/issues/87#issuecomment -234996994,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AABIcOHzeq8IabUoj-SZx_B-7er-PJf9ks5qZNzsgaJpZM4JTizF
.

рдХреБрдЫ-рдмрд╣реБрдд-рдЧреБрдкреНрдд рдХреЛ рдЧреБрдкреНрдд рдХреБрдВрдЬреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ рдлрд╝рдВрдХреНрд╢рди NewCookieStore () рдореЗрдВ рдХреНрдпрд╛ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

https://godoc.org/github.com/gorilla/sessions#NewCookieStore

рдХреБрдВрдЬреА рд░реЛрдЯреЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛ рдПрдХрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреБрдВрдЬреА рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИред
рдПрдХ рдЬреЛрдбрд╝реА рдореЗрдВ рдкрд╣рд▓реА рдХреБрдВрдЬреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдФрд░ рджреВрд╕рд░реА рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЕрдВрддрд┐рдо рдЬреЛрдбрд╝реА рдореЗрдВ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдЬреЛрдбрд╝рд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

NewCookieStore рдПрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг/рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреБрдВрдЬреА рдФрд░ рдПрдХ (рд╡реИрдХрд▓реНрдкрд┐рдХ) рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рд▓реЗрддрд╛ рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдирдпрд╛ рд╣реВрдБред рдХреНрдпрд╛ рдЖрдк Inject store рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рджред

@CasperHK рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкреИрдХреЗрдЬ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ - рдЬреИрд╕реЗ

  • NewProjectBrowser(store sessions.Store, debug bool) (*ProjectBrowser, error) { ... }
  • NewCodeEditor(store sessions.Store) (*CodeEditor, error) { ... }

main.go

func main() {
    // Create a store, and then pass it (inject it) into your other packages via their constructors
    store  := sessions.NewCookieStore(key)
    ...
    ce, err := package.NewCodeEditor(store)
    ...
    pb, err := package.NewProjectBrowser(store)
    ...
}

рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рдмрдВрджред

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

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

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

cless picture cless  ┬╖  23рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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