@@ -35,13 +35,13 @@ type (
3535 StoreConfig struct {
3636 StoreName string
3737 Maxlifetime int64
38+ CookieName string //custom cookie name which sessionid store
3839 ServerIP string //if use redis, connection string, like "redis://:password@10.0.1.11:6379/0"
3940 StoreKeyPre string //if use redis, set custom redis key-pre; default is dotweb:session:
4041 }
4142
4243 SessionManager struct {
4344 store SessionStore
44- CookieName string `json:"cookieName"`
4545 GCLifetime int64 `json:"gclifetime"`
4646 storeConfig * StoreConfig
4747 }
@@ -94,22 +94,21 @@ func NewStoreConfig(storeName string, maxlifetime int64, serverIp string, storeK
9494
9595//create new session manager with default config info
9696func NewDefaultSessionManager (config * StoreConfig ) (* SessionManager , error ) {
97- return NewSessionManager (DefaultSessionCookieName , DefaultSessionGCLifeTime , config )
97+ return NewSessionManager (DefaultSessionGCLifeTime , config )
9898}
9999
100100//create new seesion manager
101- func NewSessionManager (cookieName string , gcLifetime int64 , config * StoreConfig ) (* SessionManager , error ) {
101+ func NewSessionManager (gcLifetime int64 , config * StoreConfig ) (* SessionManager , error ) {
102102 if gcLifetime <= 0 {
103103 gcLifetime = DefaultSessionGCLifeTime
104104 }
105- if cookieName == "" {
106- cookieName = DefaultSessionCookieName
105+ if config . CookieName == "" {
106+ config . CookieName = DefaultSessionCookieName
107107 }
108108 manager := & SessionManager {
109109 store : GetSessionStore (config ),
110110 GCLifetime : gcLifetime ,
111111 storeConfig : config ,
112- CookieName : cookieName ,
113112 }
114113 //开启GC
115114 go func () {
@@ -118,16 +117,21 @@ func NewSessionManager(cookieName string, gcLifetime int64, config *StoreConfig)
118117 return manager , nil
119118}
120119
121- //create new session id with DefaultSessionLength
120+ // NewSessionID create new session id with DefaultSessionLength
122121func (manager * SessionManager ) NewSessionID () string {
123122 val := cryptos .GetRandString (DefaultSessionLength )
124123 return val
125124}
126125
126+ // StoreConfig return store config
127+ func (manager * SessionManager ) StoreConfig () * StoreConfig {
128+ return manager .storeConfig
129+ }
130+
127131//get session id from client
128132//default mode is from cookie
129133func (manager * SessionManager ) GetClientSessionID (req * http.Request ) (string , error ) {
130- cookie , err := req .Cookie (manager .CookieName )
134+ cookie , err := req .Cookie (manager .storeConfig . CookieName )
131135 if err != nil {
132136 return "" , err
133137 }
0 commit comments