@@ -33,7 +33,8 @@ class VerifyCsrfToken
3333 * Handle middleware
3434 *
3535 * @param Request $request
36- * @param mixed $continue
36+ * @param bool $continue
37+ * @throws TokenMismatchException
3738 * @return bool
3839 */
3940 public function handle ($ request , $ continue ) : bool
@@ -73,27 +74,46 @@ protected function isReading($request) : bool
7374 */
7475 protected function shouldIgnore ($ request ) : bool
7576 {
76- return in_array ($ request ->path (), $ this ->createUrl ($ request , 'except ' )) ? true : false ;
77+ /** create url */
78+ $ this ->createUrl (
79+ $ request ,
80+ 'except '
81+ );
82+
83+ return in_array ($ request ->path (), $ this ->except ) ? true : false ;
7784 }
7885
7986 /**
80- * Check if token is valid
87+ * Check if token matches
8188 *
8289 * @param \Modulus\Http\Request $request
8390 * @return bool
8491 */
8592 protected function tokenMatches ($ request ) : bool
8693 {
87- if (!isset ( $ _SESSION ['_saini ' ]) || !$ _SESSION ['_saini ' ]) return false ;
94+ if (!isset ($ _SESSION ['_session_token ' ]) || !$ _SESSION ['_session_token ' ]) return false ;
8895
89- $ csrfToken = $ request -> has ( ' csrf_token ' ) ? $ request -> input ( ' csrf_token ' ) : ( $ request-> headers -> has ( ' X-CSRF-TOKEN ' ) ? $ request -> header ( ' X-CSRF-TOKEN ' ) : null ) ;
90- $ sessionToken = $ _SESSION [ ' _saini ' ];
96+ return hash_equals ( $ _SESSION [ ' _session_token ' ], $ this -> getCsrfToken ( $ request)) ? true : false ;
97+ }
9198
92- if (!hash_equals ($ sessionToken , $ csrfToken )) {
93- return false ;
99+ /**
100+ * Get csrf token
101+ *
102+ * @param mixed $request
103+ */
104+ private function getCsrfToken ($ request ) : string
105+ {
106+ if ($ request ->has ('csrf_token ' )) {
107+ return $ request ->input ('csrf_token ' );
94108 }
95109
96- return true ;
110+ foreach ($ request ->headers () as $ header => $ value ) {
111+ if (strtoupper ($ header ) == 'X-CSRF-TOKEN ' ) {
112+ return $ value ;
113+ }
114+ }
115+
116+ return '' ;
97117 }
98118
99119 /**
@@ -104,13 +124,13 @@ protected function tokenMatches($request) : bool
104124 */
105125 protected function hasNotExpired ($ request ) : bool
106126 {
107- if (!isset ($ _SESSION ['_cksal ' ])) return false ;
127+ if (!isset ($ _SESSION ['_session_stamp ' ])) return false ;
108128
109129 $ this ->createUrl ($ request , 'expire ' );
110130
111131 if (in_array ($ request ->path (), $ this ->canExpire )) return true ;
112132
113- $ time = $ _SESSION ['_cksal ' ];
133+ $ time = $ _SESSION ['_session_stamp ' ];
114134 $ time = base64_decode ($ time );
115135
116136 $ expire = config ('auth.expire.session_token ' );
@@ -126,8 +146,8 @@ protected function hasNotExpired($request) : bool
126146 /**
127147 * Create url
128148 *
129- * @param \Modulus\Http\Request $request
130- * @param string $type
149+ * @param \Modulus\Http\Request $request
150+ * @param string $type
131151 * @return void
132152 */
133153 private function createUrl ($ request , string $ type )
0 commit comments