LoginController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App\Http\Controllers\AdminApi;
  3. use App\Http\Controllers\FrontController;
  4. use App\Models\User;
  5. use App\Servers\PassServer;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\Support\Str;
  9. class LoginController extends FrontController
  10. {
  11. public function __construct()
  12. {
  13. parent::__construct();
  14. }
  15. /**
  16. * 后台登录
  17. * @return \Illuminate\Http\JsonResponse
  18. */
  19. function login(){
  20. $phone = request()->input('phone', '13900139001');//账号
  21. $password = request()->input('password', '123456');//密码
  22. $code = request()->input('code', '');//验证码
  23. if (empty($phone)) return $this->apiResponseError( '登录手机号必填');
  24. if (empty($password)) return $this->apiResponseError( '登录密码必填');
  25. $where = [['is_del',0], ['status',1], ['phone',$phone]];
  26. $user = User::where($where)->select(['id', 'password', 'encrypt'])->first();
  27. if (empty($user)) {
  28. return $this->apiResponseError('当前账户不存在');
  29. }
  30. //密码验证
  31. $pass_server = PassServer::creatServer($password, $user->{'encrypt'});
  32. if (!$pass_server->verifyPass($user->{'password'})) {
  33. return $this->apiResponseError('登陆密码错误');
  34. }
  35. $token = Str::random(60);
  36. $api_token = hash('sha256', $token);
  37. $token_ret = $user->update(['api_token'=>$api_token]);
  38. if(empty($token_ret)){
  39. return $this->apiResponseError('登陆信息更新失败');
  40. }
  41. //获取用户信息
  42. $info = User::where('api_token', $api_token)->select(['id','name','email','phone'])->first();
  43. return $this->apiResponseSuccess('登录成功',['token'=>$api_token,'user'=>$info]);
  44. }
  45. /**
  46. * 退出登录
  47. * @return \Illuminate\Http\JsonResponse
  48. */
  49. public function logout()
  50. {
  51. request()->session()->flush();
  52. return $this->apiResponseSuccess('退出成功');
  53. }
  54. }