AuthAdmin.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. class AuthAdmin
  5. {
  6. /**
  7. * Handle an incoming request.
  8. *
  9. * @param \Illuminate\Http\Request $request
  10. * @param \Closure $next
  11. * @return mixed
  12. */
  13. public function handle($request, Closure $next)
  14. {
  15. if (\App\Models\Allowip::checkIp() < 0) {
  16. return abort(404);
  17. }
  18. if(!defined('REMOTE_KEY')){
  19. $token= \App\Models\Setinfo::getsInfo(1000);
  20. define('REMOTE_KEY',$token);
  21. }
  22. S("ENABLED_PRIVCHECK", 1);
  23. if ($request->session()->has('adminInfo') && !empty($request->session()->get('adminInfo'))) {
  24. /**
  25. * 检测用户是否被删除,或改了密码
  26. */
  27. if (\App\Models\System_user::checkAdmin($request->session()->get('adminInfo')) < 1) {
  28. $request->session()->flush();
  29. $request->session()->regenerate();
  30. return redirect('/admin/login/index');
  31. }
  32. if(checkToken(session('adminInfo.admin_id'),session('adminInfo.token'))<0){
  33. $code_array=\App\Models\Priv_codeModel::getUserCode(session('adminInfo.admin_id'));
  34. if(!in_array('passToken',$code_array)){
  35. $request->session()->flush();
  36. $request->session()->regenerate();
  37. return redirect('/admin/login/index?login=1');
  38. }
  39. }
  40. if ($this->checkRole($request) < 0) {
  41. return redirect('admin/login/errors');
  42. }
  43. if ('admin/login/index' == $request->path()) {
  44. return redirect('/');
  45. }
  46. return $next($request);
  47. }
  48. if ('admin/login/index' == $request->path()) {
  49. return $next($request);
  50. }
  51. return redirect('/admin/login/index');
  52. }
  53. private function checkRole($request)
  54. {
  55. if ('admin/login/errors' == $request->path()) {
  56. return 1;
  57. }
  58. if (\App\Models\Role::hasRoot('/' . $request->path()) != '1') {
  59. return -1001;
  60. }
  61. return 1;
  62. }
  63. }