AuthService.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace App\Services\Statistics\Auth;
  3. /*use App\Models\StatisticsUser;*/
  4. use Encore\Admin\Auth\Database\Administrator;
  5. use Illuminate\Contracts\Auth\Authenticatable;
  6. use App\Repositories\Statistics\StatisticsUserRepository;
  7. use Illuminate\Database\Eloquent\Model;
  8. use Illuminate\Support\Facades\Auth;
  9. use Illuminate\Support\Facades\Cache;
  10. use Illuminate\Support\Facades\Hash;
  11. use App\Models\Admin\SubsiteAdminUser;
  12. class AuthService
  13. {
  14. /**
  15. * AuthService constructor.
  16. */
  17. protected $statisticsUserRepository;
  18. protected $administrator;
  19. public function __construct(StatisticsUserRepository $statisticsUserRepository, Administrator $administrator)
  20. {
  21. $this->statisticsUserRepository = $statisticsUserRepository;
  22. $this->administrator = $administrator;
  23. }
  24. public function loginByAccount($account, $password = '', $isAutoLogin = 0)
  25. {
  26. $user=$this->checkUser($account, $password);
  27. if (!$user) {
  28. return false;
  29. }
  30. $this->login($user, $isAutoLogin);
  31. return $user;
  32. }
  33. public function checkUser($username, $password)
  34. {
  35. $user=$this->administrator->where(['username'=>$username])->first();
  36. if (!$user) {
  37. return false;
  38. }
  39. if ($password && !Hash::check($password, $user->password)) {
  40. return false;
  41. }
  42. return $user;
  43. }
  44. public function login($user, $isAutoLogin = 0)
  45. {
  46. $isAutoLogin=$isAutoLogin?true:false;
  47. if ($user instanceof Administrator) {
  48. Auth::guard('admin')->login($user, $isAutoLogin);
  49. }
  50. }
  51. public function logout()
  52. {
  53. Auth::guard('admin')->logout();
  54. }
  55. public function getUserRelativeSubsites($user)
  56. {
  57. $where = ['admin_user_id'=>$user->id];
  58. return SubsiteAdminUser::where($where)->pluck('subsite_id')->toArray();
  59. }
  60. }