@@ -10,7 +10,7 @@ module.exports = function (connect)
10
10
var self = this ,
11
11
forceSync = options . forceSync || false ,
12
12
checkExpirationInterval = options . checkExpirationInterval || 1000 * 60 * 10 , // default 10 minutes.
13
- defaultExpiration = options . defaultExpiration || 60 * 24 ; // default 1 day.
13
+ defaultExpiration = options . defaultExpiration || 60 * 60 * 24 ; // default 1 day.
14
14
15
15
var sequelize = new Sequelize ( database , user , password , options ) ;
16
16
@@ -30,7 +30,6 @@ module.exports = function (connect)
30
30
sequelize . sync ( { force : forceSync } )
31
31
. on ( 'success' , function ( )
32
32
{
33
- console . log ( 'MySQL session store initialized.' ) ;
34
33
initialized = true ;
35
34
callback ( ) ;
36
35
} )
@@ -49,12 +48,13 @@ module.exports = function (connect)
49
48
initialize ( function ( error )
50
49
{
51
50
if ( error ) return ;
51
+
52
52
Session . findAll ( { where : [ 'last_activity < ?' , Math . round ( Date . now ( ) / 1000 ) + defaultExpiration ] } )
53
53
. on ( 'success' , function ( sessions )
54
54
{
55
55
if ( sessions . length > 0 )
56
56
{
57
- console . log ( 'Destroying ' + sessions . length + ' expired sessions.' ) ;
57
+ // console.log('Destroying ' + sessions.length + ' expired sessions.');
58
58
for ( var i in sessions )
59
59
{
60
60
sessions [ i ] . destroy ( ) ;
@@ -71,13 +71,45 @@ module.exports = function (connect)
71
71
72
72
this . get = function ( sid , fn )
73
73
{
74
+ var that = this ;
74
75
initialize ( function ( error )
75
76
{
76
77
if ( error ) return fn ( error , null ) ;
77
78
Session . find ( { where : { 'id' : sid } } )
78
79
. on ( 'success' , function ( record )
79
80
{
80
81
var session = record && JSON . parse ( record . payload ) ;
82
+
83
+ if ( session ) {
84
+ if ( ! ( session . passport && session . passport . user ) && session . user )
85
+ {
86
+ if ( ! session . passport )
87
+ {
88
+ session . passport = { } ;
89
+ }
90
+ if ( session && session . user )
91
+ {
92
+ session . passport . user = session . user ;
93
+ }
94
+
95
+ that . set ( sid , session ) ;
96
+ }
97
+
98
+ if ( ! session . cookie )
99
+ {
100
+ session . cookie = { } ;
101
+ }
102
+ if ( ! ( session . cookie && session . cookie . expires ) && session . last_activity )
103
+ {
104
+ session . cookie . expires = session . last_activity + parseInt ( sails . config . session . cookie . maxAge ) ;
105
+ }
106
+ if ( ! ( session . cookie && session . cookie . originalMaxAge ) )
107
+ {
108
+ session . cookie . originalMaxAge = sails . config . session . cookie . maxAge ;
109
+ }
110
+ session . cookie . domain = sails . config . session . cookie . domain ;
111
+ }
112
+
81
113
fn ( null , session ) ;
82
114
} )
83
115
. on ( 'failure' , function ( error )
@@ -89,41 +121,49 @@ module.exports = function (connect)
89
121
90
122
this . set = function ( sid , session , fn )
91
123
{
124
+ if ( session . passport && session . passport . user && ! session . user ) {
125
+ session . user = session . passport . user ;
126
+ }
127
+
92
128
initialize ( function ( error )
93
129
{
94
130
if ( error ) return fn && fn ( error ) ;
95
131
Session . find ( { where : { 'id' : sid } } )
96
132
. on ( 'success' , function ( record )
97
133
{
134
+
135
+ if ( session && ! session . user && session . passport && session . passport . user )
136
+ {
137
+ session . user = session . passport . user ;
138
+ }
139
+
98
140
if ( ! record )
99
141
{
100
142
record = Session . create ( {
101
143
id : sid ,
102
144
payload : JSON . stringify ( session ) ,
103
- last_activity : Date . now ( )
145
+ last_activity : Math . round ( Date . now ( ) / 1000 )
104
146
} ) . on ( 'success' , function ( )
105
147
{
106
148
fn && fn ( ) ;
107
149
} )
108
150
. on ( 'failure' , function ( error )
109
151
{
110
- console . log ( 'fail to create' ) ;
111
152
fn && fn ( error ) ;
112
153
} ) ;
113
154
}
114
155
else
115
- {
156
+ {
116
157
Session . update ( {
117
158
payload : JSON . stringify ( session ) ,
118
- last_activity : Date . now ( )
159
+ last_activity : Math . round ( Date . now ( ) / 1000 )
119
160
} , { id : sid } )
120
161
. on ( 'success' , function ( )
121
162
{
122
163
fn && fn ( ) ;
123
164
} )
124
165
. on ( 'failure' , function ( error )
125
166
{
126
- console . log ( 'fail to update' ) ;
127
167
fn && fn ( error ) ;
128
168
} ) ;
129
169
}
0 commit comments