Login.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <?php
  2. namespace app\worker\controller;
  3. use app\common\model\Worker as WorkerModel;
  4. use Aliyun\DySDKLite\Sms\SendSms;
  5. use App\Http\Controllers\Sdk\GeetestLib;
  6. use think\facade\Session;
  7. use think\facade\Db;
  8. class Login
  9. {
  10. public function index()
  11. {
  12. return view('login/login',[
  13. 'domain' => request()->domain()
  14. ]);
  15. }
  16. //验证手机号
  17. public function yz_mobile()
  18. {
  19. $mobile = trim(input('mobile'));
  20. if($mobile){
  21. $data = Db::name('worker')
  22. ->where('mobile',$mobile)
  23. ->find();
  24. if($data['status'] == 2){
  25. $code = 1;
  26. $msg = '该账号已经被禁用,请联系管理员';
  27. }elseif(empty($data)){
  28. $code = 1;
  29. $msg = '该手机号未注册,请先注册';
  30. }else{
  31. $code = 0;
  32. $msg = '该手机号正确';
  33. }
  34. exit(json_encode(array(
  35. 'code' => $code,
  36. 'msg' => $msg
  37. )));
  38. }else{
  39. $msg = '请填写正确的手机号';
  40. }
  41. exit(json_encode(array(
  42. 'code' => 1,
  43. 'msg' => $msg
  44. )));
  45. }
  46. public function jy()
  47. {
  48. include("../extend/jy/geetest_config.php");
  49. include("../extend/jy/GeetestLib.php");
  50. $GtSdk = new \App\Http\Controllers\Sdk\GeetestLib(GEETEST_ID, GEETEST_KEY);
  51. $get_ip = get_client_ip();
  52. $user_id = 'login';
  53. $digestmod = "md5";
  54. $params = array(
  55. "digestmod" => $digestmod,
  56. "user_id" => $user_id, # 网站用户id
  57. "client_type" => "web", #web:电脑上的浏览器;h5:手机上的浏览器,包括移动应用内完全内置的web_view;native:通过原生SDK植入APP应用的方式
  58. "ip_address" => $get_ip, # 请在此处传输用户请求验证时所携带的IP
  59. );
  60. // $status = $GtSdk->pre_process($data, 1);
  61. $result = $GtSdk->register($digestmod, $params);
  62. session(GeetestLib::GEETEST_SERVER_STATUS_SESSION_KEY, $result->getStatus());
  63. session("userId", $user_id);
  64. return $result->getData();
  65. }
  66. //短息验证码 发送
  67. public function yzm()
  68. {
  69. Session::delete('yzm_code');
  70. $rand = rand(000001,999999);
  71. $mobile = trim(input('post.mobile'));
  72. $con['rand'] = $rand;
  73. $con['tel'] = $mobile;
  74. $preg_phone='/^1[34578]\d{9}$/ims';
  75. $rtn = [];
  76. if(!$mobile)
  77. {
  78. $rtn['code'] = 1;
  79. $rtn['message'] = '手机号为空';
  80. }else{
  81. if(preg_match($preg_phone,$mobile)){
  82. require_once('../extend/alidy/demo/SendSms.php');
  83. $alisms = Db::name('alisms')
  84. ->field('accesskeyid,accesskeysecret,signname,mobilelogin')
  85. ->find(1);
  86. $sendSms = new \Aliyun\DySDKLite\Sms\SendSms();
  87. $res = get_object_vars($sendSms -> sendSms_yzm($con,$alisms));
  88. if($res['Message'] == 'OK')
  89. {
  90. $rtn['code'] = 0;
  91. Session::set('yzm_code',$rand);
  92. }
  93. }else{
  94. $rtn['code'] = 1;
  95. $rtn['message'] = '手机号格式不正确';
  96. }
  97. }
  98. return $rtn;
  99. }
  100. //验证码 验证
  101. public function yzm_verify()
  102. {
  103. $mobile = trim(input('mobile'));
  104. $data = Db::name('worker')
  105. ->where('mobile',$mobile)
  106. ->find();
  107. $yzm = (int)trim(input('yzm'));
  108. $yzm_code = Session::get('yzm_code');
  109. $res = [];
  110. if($data['status'] == 2){
  111. $res['code'] = 1;
  112. $res['message'] = '该账号已经被禁用,请联系管理员';
  113. }elseif(empty($data)){
  114. $res['code'] = 1;
  115. $res['message'] = '该手机号未注册,请先注册';
  116. }else{
  117. if($yzm == $yzm_code){
  118. $workeradmin = WorkerModel::where(['mobile'=>$mobile])->findOrEmpty()->toArray();
  119. session('access_worker', $workeradmin);
  120. $res['code'] = 0;
  121. echo json_encode($res);
  122. }else{
  123. $res['code'] = 1;
  124. $res['message'] = '验证码不正确';
  125. echo json_encode($res);
  126. }
  127. }
  128. }
  129. public function logout()
  130. {
  131. session(null);
  132. return redirect(url('/login/index'));
  133. }
  134. }