diff --git a/.gitignore b/.gitignore index 9e95391..0030ecf 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ .glide/ .vscode +.idea diff --git a/README.md b/README.md index eb933b3..81837f2 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ ### Download and install ```bash -go get -v github.com/go-session/session/v3 +go get -v github.com/Scumfunk/session/v3 ``` ### Create file `server.go` @@ -22,7 +22,7 @@ import ( "fmt" "net/http" - session "github.com/go-session/session/v3" + session "github.com/Scumfunk/session/v3" ) func main() { diff --git a/doc.go b/doc.go index a6f3c1d..558c0c0 100644 --- a/doc.go +++ b/doc.go @@ -11,7 +11,7 @@ Example: "fmt" "net/http" - session "github.com/go-session/session/v3" + session "github.com/Scumfunk/session/v3" ) func main() { diff --git a/go.mod b/go.mod index b28867f..a1dd217 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/go-session/session/v3 +module github.com/Scumfunk/session/v3 go 1.17 diff --git a/session.go b/session.go index f5ea71b..498737b 100644 --- a/session.go +++ b/session.go @@ -15,7 +15,7 @@ import ( ) // Version # of session -const Version = "3.1.4" +const Version = "3.1.9" var ( // ErrInvalidSessionID invalid session id @@ -31,6 +31,7 @@ var defaultOptions = options{ cookieLifeTime: 3600 * 24 * 7, expired: 7200, secure: true, + forceSecure: false, sameSite: http.SameSiteDefaultMode, sessionID: func(_ context.Context) string { return newUUID() @@ -44,6 +45,7 @@ type options struct { cookieName string cookieLifeTime int secure bool + forceSecure bool domain string sameSite http.SameSite expired int64 @@ -93,6 +95,13 @@ func SetSecure(secure bool) Option { } } +// SetForceSecure Set cookie security (force) +func SetForceSecure(forceSecure bool) Option { + return func(o *options) { + o.forceSecure = forceSecure + } +} + // SetSameSite Set SameSite attribute of the cookie func SetSameSite(sameSite http.SameSite) Option { return func(o *options) { @@ -248,6 +257,9 @@ func (m *Manager) encodeSessionID(sid string) string { } func (m *Manager) isSecure(r *http.Request) bool { + if m.opts.forceSecure { + return true + } if !m.opts.secure { return false }