AdminAuthMiddleware.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App\Exceptions\MemberAuthException;
  4. use App\Models\User;
  5. use App\Servers\System\PermissionServer;
  6. use Closure;
  7. use Illuminate\Support\Facades\Auth;
  8. class AdminAuthMiddleware
  9. {
  10. private $noAuth = [
  11. 'adminApi.auth.login',
  12. 'adminApi.auth.retrieve',//忘记密码
  13. 'adminApi.common.send',
  14. 'adminApi.auth.retrieve',
  15. ];
  16. /**
  17. * Handle an incoming request.
  18. *
  19. * @param \Illuminate\Http\Request $request
  20. * @param \Closure $next
  21. * @return mixed
  22. */
  23. public function handle($request, Closure $next)
  24. {
  25. $clientRoute = request()->route()->getName();//获取当前路由
  26. if (in_array($clientRoute, $this->noAuth)) {//不需要验证的路由
  27. return $next($request);
  28. }
  29. $apiToken=$request->input('api_token','');
  30. if(empty($apiToken)){
  31. $apiToken=$request->header('Authorization');
  32. }
  33. $user=User::where('api_token',$apiToken)->where('is_del',0)->select(['id','name','status','roles_id'])->first();
  34. if(empty($user)){
  35. return response()->json([
  36. 'msg' => '请先登录',
  37. 'code' => 401,
  38. 'data' => []
  39. ]);
  40. }
  41. if(empty($user->{'status'})){
  42. return response()->json([
  43. 'msg' => '当前账户已锁定',
  44. 'code' => 401,
  45. 'data' => []
  46. ]);
  47. }
  48. Auth::loginUsingId($user->{'id'});
  49. //进行路由验证
  50. // $ret = PermissionServer::creatServer()->verifyPermission($user->{'id'}, $clientRoute,0);
  51. // if (empty($ret) ) {
  52. // if($request->ajax()){
  53. // return response()->json([
  54. // 'msg' => '暂无权限',
  55. // 'code' => 0,
  56. // 'data' => []
  57. // ]);
  58. // }else{
  59. // return $next($request);
  60. // }
  61. //
  62. // }
  63. return $next($request);
  64. }
  65. }