checkAuthMiddleware.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. class checkAuthMiddleware
  6. {
  7. /**
  8. * Handle an incoming request.
  9. *
  10. * @param \Illuminate\Http\Request $request
  11. * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
  12. * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
  13. */
  14. public function handle(Request $request, Closure $next)
  15. {
  16. //
  17. $session = $request->header('token','');
  18. if(!$session) {
  19. return response()
  20. ->json([
  21. 'errno'=> 20000,
  22. "errmsg" => '请先登录',
  23. ]);
  24. }
  25. // 通过openid判断是否存在
  26. $user = \App\Models\Account::where("session", $session)->first();
  27. if(!$user) {
  28. return response()
  29. ->json([
  30. 'errno'=> 20000,
  31. "errmsg" => '请先登录',
  32. ]);
  33. }
  34. //
  35. if(strtotime($user->session_expire) < time()) {
  36. return response()
  37. ->json([
  38. 'errno'=> 20000,
  39. "errmsg" => '请先登录',
  40. ]);
  41. }
  42. //
  43. $user->session_expire = date("Y-m-d H:i:s", strtotime("+30 day"));
  44. $user->save();
  45. // $account = serialize($user);
  46. $request->attributes->set('account',serialize($user));//添加参数
  47. //
  48. return $next($request);
  49. }
  50. }