1515use Lcobucci \JWT \Validation \Constraint \SignedWith ;
1616use Lcobucci \JWT \Validation \Constraint \ValidAt ;
1717use Lcobucci \Clock \SystemClock ;
18+ use xiaodi \JWTAuth \Exception \JWTException ;
1819
1920/**
2021 *
@@ -58,7 +59,7 @@ protected function init()
5859 $ this ->initJwtConfiguration ();
5960 }
6061
61- protected function initJwtConfiguration ()
62+ public function initJwtConfiguration ()
6263 {
6364 $ this ->jwtConfiguration = Configuration::forSymmetricSigner (
6465 $ this ->config ->getSigner (),
@@ -104,14 +105,19 @@ public function getExpiryDateTime($now): DateTimeImmutable
104105 return $ now ->modify ("+ {$ ttl } sec " );
105106 }
106107
107- public function parseToken (string $ token ): JwtToken
108+ /**
109+ *
110+ * @param string $token
111+ * @return JwtToken
112+ */
113+ public function parse (string $ token ): JwtToken
108114 {
109- $ token = $ this ->jwtConfiguration ->parser ()->parse ($ token );
110- return $ token ;
115+ $ this ->token = $ this ->jwtConfiguration ->parser ()->parse ($ token );
116+
117+ return $ this ->token ;
111118 }
112119
113120 /**
114- * 验证成功的Token
115121 *
116122 * @return JWTToken
117123 */
@@ -120,22 +126,32 @@ public function getToken(): ?JwtToken
120126 return $ this ->token ;
121127 }
122128
129+ /**
130+ *
131+ * @param string $token
132+ * @return boolean|null
133+ */
123134 public function verify (string $ token ): ?bool
124135 {
125- $ this ->token = $ this ->parseToken ($ token );
136+ $ this ->validate ($ token );
137+ }
126138
139+ /**
140+ * 效验 Token
141+ * @param string $token
142+ * @return boolean
143+ */
144+ public function validate (string $ token )
145+ {
146+ $ token = $ this ->parse ($ token );
127147 $ this ->jwtConfiguration ->setValidationConstraints (
128148 new ValidAt (new SystemClock (new DateTimeZone (\date_default_timezone_get ()))),
129149 new SignedWith ($ this ->jwtConfiguration ->signer (), $ this ->jwtConfiguration ->signingKey ())
130150 );
131151
132152 $ constraints = $ this ->jwtConfiguration ->validationConstraints ();
133153
134- if (!$ this ->jwtConfiguration ->validator ()->validate ($ this ->token , ...$ constraints )) {
135- throw new JWTException ('效验失败 ' , 401 );
136- }
137-
138- return true ;
154+ return $ this ->jwtConfiguration ->validator ()->validate ($ token , ...$ constraints );
139155 }
140156
141157 public function logout (?string $ token ): void
0 commit comments