diff options
author | Matt Silverlock <matt@eatsleeprepeat.net> | 2015-08-06 10:24:19 +0300 |
---|---|---|
committer | Matt Silverlock <matt@eatsleeprepeat.net> | 2015-08-06 10:26:37 +0300 |
commit | 84828075d0d711460567d521b07a30fd664979d5 (patch) | |
tree | d22dbf53c9545fd9c1a30214887d461b0aaa944a /securecookie.go | |
parent | a2b6e9f57ea55d2c7a8cf1de58593fa761a34b73 (diff) |
Improved documentation for CodecsFromPairs.
- Partially addresses https://github.com/gorilla/sessions/issues/48
- Downstream store packages will need to perform the type assertion in their code
- Elected to document this and fix stores rather than add a function to the
public API.
Diffstat (limited to 'securecookie.go')
-rw-r--r-- | securecookie.go | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/securecookie.go b/securecookie.go index 7c05972..7dd373d 100644 --- a/securecookie.go +++ b/securecookie.go @@ -484,7 +484,29 @@ func GenerateRandomKey(length int) []byte { // CodecsFromPairs returns a slice of SecureCookie instances. // -// It is a convenience function to create a list of codecs for key rotation. +// It is a convenience function to create a list of codecs for key rotation. Note +// that the generated Codecs will have the default options applied: callers +// should iterate over each Codec and type-assert the underlying *SecureCookie to +// change these. +// +// Example: +// +// codecs := securecookie.CodecsFromPairs( +// []byte("new-hash-key"), +// []byte("new-block-key"), +// []byte("old-hash-key"), +// []byte("old-block-key"), +// ) +// +// // Modify each instance. +// for _, s := range codecs { +// if cookie, ok := s.(*securecookie.SecureCookie); ok { +// cookie.MaxAge(86400 * 7) +// cookie.SetSerializer(securecookie.JSONEncoder{}) +// cookie.HashFunc(sha512.New512_256) +// } +// } +// func CodecsFromPairs(keyPairs ...[]byte) []Codec { codecs := make([]Codec, len(keyPairs)/2+len(keyPairs)%2) for i := 0; i < len(keyPairs); i += 2 { |