Login.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. namespace app\service\controller;
  3. use think\Controller;
  4. class Login extends Controller
  5. {
  6. public function index()
  7. {
  8. $this->assign([
  9. 'version' => config('version')
  10. ]);
  11. return $this->fetch();
  12. }
  13. public function doLogin()
  14. {
  15. //验证客服IP
  16. $settings = db('settings')->where('id',1)->find();
  17. if($settings['kf_white_list'] == 'on'){
  18. @$ip = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
  19. $ip = ($ip) ? $ip : $_SERVER["REMOTE_ADDR"];
  20. return json(['code' => 0, 'data' => $ip, 'msg' => $ip]);
  21. //将ip地址转换成int型
  22. $intip = bindec(decbin(ip2long($ip)));
  23. $res = db('iplimit')->where('ip',$ip)->where('object',2)->find();
  24. $result = db('iplimit')->where('start_ip','<=',$intip)->where('end_ip','>=',$intip)->where('object',2)->find();
  25. if(empty($res) && empty($result)){
  26. return json(['code' => 0, 'data' => [], 'msg' => '访问受限']);
  27. }
  28. }
  29. $userAccount = input('post.username');
  30. $password = input('post.password');
  31. //在线客服
  32. $users = db('kfonline')->select();
  33. $user = db('users')->where('user_account', $userAccount)->find();
  34. if(empty($user)){
  35. return json(['code' => -1, 'data' => '', 'msg' => '客服不存在']);
  36. }
  37. if($user['status'] != 1){
  38. return json(['code' => -3, 'data' => '', 'msg' => '此账号已禁用']);
  39. }
  40. /*$has = db('kfonline')->where('uid','KF'.$user['id'])->select();
  41. if(!empty($has)){
  42. return json(['code' => -4, 'data' => '', 'msg' => '此账号已登录']);
  43. }*/
  44. if(md5($password . config('salt')) != $user['user_pwd']){
  45. return json(['code' => -2, 'data' => '', 'msg' => '密码错误']);
  46. }
  47. // 登陆成功 生成token
  48. $module = mt_rand(100000,999999);
  49. $token = base64_encode($module.'#$@%!^*/'.time().'/'.$user['id']);
  50. // 更新管理员状态
  51. $param = [
  52. 'token' => $token,
  53. 'expire_time' => time()
  54. ];
  55. db('users')->where('id', $user['id'])->update($param);
  56. //$user = db('users')->field('id,user_account,user_name,user_avatar,phone,group_id,token')->where('id', $user['id'])->select();
  57. $user = db('users')->where('id', $user['id'])->select();
  58. $group = db('groups')->where('id', $user[0]['group_id'])->find();
  59. $user[0]['group'] = $group['name'];
  60. $this->assign([
  61. 'token' => $token,
  62. 'user_name' => $user[0]['user_name'],
  63. 'user_account' => $userAccount
  64. ]);
  65. return json(['code' => 1, 'data' => ['user' => $user[0]], 'msg' => '登录成功']);
  66. }
  67. public function loginOut()
  68. {
  69. $this->redirect(url('login/index'));
  70. }
  71. }