File tree 3 files changed +17
-4
lines changed
3 files changed +17
-4
lines changed Original file line number Diff line number Diff line change 44
44
> - [x] jwt-auth用户认证与无感知自动刷新
45
45
> - [x] jwt-auth多角色认证不串号
46
46
> - [x] 单一设备登陆
47
-
47
+ > - [x] 异常捕获,http状态码统一
48
48
-----
49
49
50
50
## 安装
@@ -274,8 +274,13 @@ protected $routeMiddleware = [
274
274
```
275
275
2.路由器修改
276
276
```
277
- Route::middleware('api.refresh')->group(function () {
278
- // jwt认证路由以及无感刷新路由
277
+ Route::middleware('api.refresh:api')->group(function () {
278
+ // api看守器登陆授权
279
+ ...
280
+ });
281
+
282
+ Route::middleware('api.refresh:admin')->group(function () {
283
+ // admin看守器登陆授权
279
284
...
280
285
});
281
286
```
@@ -292,7 +297,7 @@ class LoginController extends Controller
292
297
* 自动刷新用户认证
293
298
> * 捕获到了 token 过期所抛出的 TokenExpiredException异常
294
299
> * 刷新用户的 token ` $token = $this->auth->refresh(); `
295
- > * 使用一次性登录以保证此次请求的成功
300
+ > * 使用一次性登录以保证此次请求的成功 注意需要设置config jwt宽限时间
296
301
> * ` Auth::guard('api')->onceUsingId($this->auth->manager()->getPayloadFactory()->buildClaimsCollection()->toPlainArray()['sub']); `
297
302
> * 在响应头中返回新的 token ` $this->setAuthenticationHeader($next($request), $token); `
298
303
Original file line number Diff line number Diff line change @@ -199,6 +199,11 @@ public function report()
199
199
$ message = current ($ this ->exception ->validator ->errors ()->all ());
200
200
}
201
201
202
+ // 设置了强制状态码
203
+ if (config ('laravel_api.exception.force_http_code ' )) {
204
+ $ httpCode = config ('laravel_api.exception.force_http_code ' );
205
+ }
206
+
202
207
return $ this ->setHttpCode ($ httpCode )->setStatusCode ($ statusCode )->message ($ message );
203
208
}
204
209
}
Original file line number Diff line number Diff line change 25
25
],
26
26
],
27
27
'exception ' => [
28
+ // 是否强制http状态码。null,空,false,表示不是强制
29
+ 'force_http_code ' => 200 ,
30
+ // 在获取不到异常信息的状态码时设置状态码,设置force_http_code时,不生效
28
31
'default_http_code ' => 500 ,
29
32
'do_report ' => [
30
33
UnauthorizedHttpException::class => [
You can’t perform that action at this time.
0 commit comments