@@ -84,7 +84,7 @@ let csrf = {
84
84
getTransmitToken : ( req ) => {
85
85
return req . body . _csrf || req . headers [ 'csrf-token' ] ;
86
86
} ,
87
- errorResponse : ( req , res ) => {
87
+ errorResponse : ( req , res , next ) => {
88
88
res . status ( 403 ) . send ( 'CSRF token invalid' ) ;
89
89
}
90
90
}
@@ -123,6 +123,7 @@ module.exports = {
123
123
res . cookie ( csrf . param , token , csrf . storage . options ) ;
124
124
break ;
125
125
}
126
+ req . currentCsrfToken = token
126
127
}
127
128
next ( ) ;
128
129
} catch ( error ) {
@@ -139,7 +140,7 @@ module.exports = {
139
140
* @param {function } next
140
141
*/
141
142
setTokenLocalsParam : ( req , res , next ) => {
142
- res . locals [ csrf . value ] = csrf . getToken ( req )
143
+ res . locals [ csrf . value ] = csrf . getToken ( req ) || req . currentCsrfToken
143
144
next ( ) ;
144
145
} ,
145
146
/**
@@ -155,7 +156,7 @@ module.exports = {
155
156
const token = csrf . getTransmitToken ( req ) ;
156
157
157
158
if ( ! token || token !== csrf . getToken ( req ) ) {
158
- return csrf . errorResponse ( req , res )
159
+ return csrf . errorResponse ( req , res , next )
159
160
} else {
160
161
console . info ( "DELETE CSRF TOKEN: " , token )
161
162
csrf . clearToken ( req , res )
0 commit comments