24 lines
		
	
	
		
			568 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			568 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import csurf from 'csurf';
 | |
| 
 | |
| export default function() {
 | |
|   const protection = csurf({
 | |
|     cookie: {
 | |
|       domain: process.env.COOKIE_DOMAIN || 'localhost',
 | |
|       sameSite: 'strict',
 | |
|       secure: process.env.FREECODECAMP_NODE_ENV === 'production'
 | |
|     }
 | |
|   });
 | |
|   return function csrf(req, res, next) {
 | |
|     const { path } = req;
 | |
|     if (
 | |
|       // eslint-disable-next-line max-len
 | |
|       /^\/hooks\/update-paypal$|^\/hooks\/update-stripe$|^\/donate\/charge-stripe$/.test(
 | |
|         path
 | |
|       )
 | |
|     ) {
 | |
|       return next();
 | |
|     }
 | |
|     return protection(req, res, next);
 | |
|   };
 | |
| }
 |