AuthController.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Models\User;
  4. use App\Http\Models\Permission;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Auth;
  7. use Illuminate\Support\Facades\Cookie;
  8. use Illuminate\Support\Facades\Hash;
  9. use Illuminate\Support\Facades\Route;
  10. use Illuminate\Support\Facades\Session;
  11. use App\Http\Controllers\Controller;
  12. use Illuminate\Support\Facades\URL;
  13. use Illuminate\Support\Str;
  14. class AuthController extends Controller
  15. {
  16. public $request;
  17. public function __construct(Request $request)
  18. {
  19. $this->middleware(['logonRedirect'])->only('logon', 'login');
  20. $this->request = $request;
  21. }
  22. //登录入口1
  23. public function logon(Request $request)
  24. {
  25. $requestUrl = $request->getRequestUri();
  26. if (!$request->ajax()) {
  27. return view('admin/auth/logon');
  28. }
  29. $backUser = User::query()->where(['username' => $this->request->input('username')])->first();
  30. if (!$backUser || !Hash::check($this->request->input('password'), $backUser->password)) {
  31. return response()->json(['status' => 400, 'message' => '用户名或密码错误']);
  32. }
  33. if (!$backUser->status) {
  34. return response()->json(['status' => 400, 'message' => '用户已禁用']);
  35. }
  36. Auth::loginUsingId($backUser->id);
  37. // session()->put('entry_page', 'admin/auth/logon');
  38. session()->put('entry_page', $requestUrl);
  39. do_log('logon')->use('system_log')->by(Auth::user())->log('安全登录');
  40. return response()->json(['status' => 200])->withCookie('entry_page', $requestUrl);
  41. }
  42. //登出
  43. public function logoff(Request $request)
  44. {
  45. do_log('logoff')->use('system_log')->by(Auth::user())->log('安全退出');
  46. $entryPage = session('entry_page') ?? $request->input('entry_page') ?? 'admin/auth/logon';
  47. Auth::logout();
  48. Session::flush();
  49. \cookie()->forget('laravel_session');
  50. return redirect($entryPage);
  51. }
  52. //登录入口2
  53. public function login(Request $request)
  54. {
  55. $from = Route::currentRouteName();
  56. if (!$request->ajax()) {
  57. return view('admin/auth/login', [
  58. 'from' => $from
  59. ]);
  60. }
  61. $backUser = User::query()->where(['username' => $this->request->input('username')])->first();
  62. if (!$backUser || !Hash::check($this->request->input('password'), $backUser->password)) {
  63. return response()->json(['status' => 400, 'message' => '用户名或密码错误']);
  64. }
  65. if (!$backUser->status) {
  66. return response()->json(['status' => 400, 'message' => '用户已禁用']);
  67. }
  68. Auth::loginUsingId($backUser->id);
  69. $requestUrl = sprintf('/%s', $from);
  70. session()->put('entry_page', $requestUrl);
  71. do_log('logon')->use('system_log')->by(Auth::user())->log('安全登录');
  72. return response()->json(['status' => 200])->withCookie('entry_page', $requestUrl);
  73. }
  74. }