@@ -50,7 +50,7 @@ public function __construct(Builder $builder)
5050 *
5151 * @param array $claims
5252 *
53- * @return Token
53+ * @return string
5454 */
5555 public function token (array $ claims )
5656 {
@@ -72,8 +72,7 @@ public function token(array $claims)
7272 $ this ->builder ->setIssuedAt ($ time )
7373 ->identifiedBy ($ uniqid , true )
7474 ->setNotBefore ($ not_before )
75- ->setExpiration ($ expires_at )
76- ->set ('time_issue ' , $ time );
75+ ->setExpiration ($ expires_at );
7776
7877 foreach ($ claims as $ key => $ claim ) {
7978 $ this ->builder ->withClaim ($ key , $ claim );
@@ -82,10 +81,20 @@ public function token(array $claims)
8281 $ token = $ this ->builder ->getToken ($ this ->getSigner (), $ this ->makeKey ());
8382
8483 if ($ this ->sso ()) {
85- $ this ->setTimeIssue ($ uniqid , $ time );
84+ $ this ->setCacheIssuedAt ($ uniqid , $ time );
8685 }
8786
88- return $ token ;
87+ return $ token ->__toString ();
88+ }
89+
90+ public function ttl ()
91+ {
92+ return $ this ->options ['expires_at ' ];
93+ }
94+
95+ public function type ()
96+ {
97+ return 'bearer ' ;
8998 }
9099
91100 /**
@@ -110,8 +119,7 @@ public function parse(string $token)
110119 * 验证 Token.
111120 *
112121 * @param string $token
113- *
114- * @return void
122+ * @return boolean
115123 */
116124 public function verify (string $ token )
117125 {
@@ -139,10 +147,10 @@ public function verify(string $token)
139147 if ($ this ->sso ()) {
140148 $ jwt_id = $ this ->token ->getHeader ('jti ' );
141149 // 当前Token签发时间
142- $ time_issue = $ this ->token ->getClaim ('time_issue ' );
150+ $ issued_at = $ this ->token ->getClaim ('iat ' );
143151 // 最新Token签发时间
144- $ cache_time_issue = $ this ->getTimeIssue ($ jwt_id );
145- if ($ time_issue != $ cache_time_issue ) {
152+ $ cache_issued_at = $ this ->getCacheIssuedAt ($ jwt_id );
153+ if ($ issued_at != $ cache_issued_at ) {
146154 throw new HasLoggedException ('已在其它终端登录,请重新登录 ' );
147155 }
148156 }
@@ -161,7 +169,7 @@ public function verify(string $token)
161169 *
162170 * @return void
163171 */
164- protected function setTimeIssue ($ jwt_id , $ value )
172+ protected function setCacheIssuedAt ($ jwt_id , $ value )
165173 {
166174 $ key = $ this ->options ['sso_cache_key ' ].'- ' .$ jwt_id ;
167175 $ ttl = $ this ->options ['expires_at ' ] + $ this ->options ['not_before ' ];
@@ -176,16 +184,16 @@ protected function setTimeIssue($jwt_id, $value)
176184 *
177185 * @return string
178186 */
179- protected function getTimeIssue ($ jwt_id )
187+ protected function getCacheIssuedAt ($ jwt_id )
180188 {
181189 return Cache::get ($ this ->options ['sso_cache_key ' ].'- ' .$ jwt_id );
182190 }
183191
184- public function setToken ( Token $ token )
185- {
186- return $ this -> token = $ token ;
187- }
188-
192+ /**
193+ * 获取Token对象
194+ *
195+ * @return void
196+ */
189197 public function getToken ()
190198 {
191199 return $ this ->token ;
@@ -204,7 +212,7 @@ public function refresh()
204212 /**
205213 * 是否单点登录.
206214 *
207- * @return B
215+ * @return boolean
208216 */
209217 private function sso ()
210218 {
@@ -214,7 +222,7 @@ private function sso()
214222 /**
215223 * 获取 sso_key.
216224 *
217- * @return void
225+ * @return string
218226 */
219227 private function ssoKey ()
220228 {
@@ -275,6 +283,7 @@ private function getSigner()
275283
276284 /**
277285 * 是否注入用户对象.
286+ * @return boolean
278287 */
279288 public function injectUser ()
280289 {
@@ -300,16 +309,21 @@ public function user()
300309 {
301310 $ uid = $ this ->token ->getClaim ($ this ->ssoKey ());
302311 if ($ uid ) {
303- $ className = $ this ->options ['user_model ' ];
304- if (empty ($ className )) {
312+ $ namespace = $ this ->options ['user_model ' ];
313+ if (empty ($ namespace )) {
305314 throw new Exception ('用户模型文件未配置. ' );
306315 }
307- if (! class_exists ( $ className )) {
308- throw new Exception ( ' 用户模型文件未找到. ' );
309- }
310- $ this ->user = $ className :: find ($ uid );
316+
317+ $ r = new \ ReflectionClass ( $ namespace );
318+ $ model = $ r -> newInstance ();
319+ $ this ->user = $ model -> find ($ uid );
311320 }
312321
313322 return $ this ->user ;
314323 }
324+
325+ public function getClaims ()
326+ {
327+ return $ this ->token ->getClaims ();
328+ }
315329}
0 commit comments