LoginController.class.php.bak.2021-08-30 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. class LoginController extends Controller
  5. {
  6. public $token = '';
  7. public $http = 'https';
  8. public function _initialize()
  9. {
  10. header("Access-Control-Allow-Origin:*");
  11. header("Access-Control-Allow-Methods:GET, POST, OPTIONS, DELETE");
  12. header("Access-Control-Allow-Headers:DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Accept-Language, Origin, Accept-Encoding");
  13. if (strpos($_SERVER['HTTP_USER_AGENT'], "MicroMessenger") != false) {
  14. $_SESSION['type'] = 'wx';
  15. } else {
  16. $_SESSION['type'] = 'app';
  17. }
  18. }
  19. public function getCompileUrl()
  20. {
  21. $Data = I('');
  22. if (!isset($Data['curl'])) {
  23. $R['flag'] = false;
  24. $R['msg'] = '缺少关键参数curl';
  25. echo json_encode($R);
  26. exit();
  27. }
  28. $tourl = urlencode($Data['curl']);
  29. $R['flag'] = true;
  30. $R['tourl'] = $tourl;
  31. $R['msg'] = '当前路径编译成功';
  32. echo json_encode($R);
  33. }
  34. public function getFirst()
  35. {
  36. if (strpos($_SERVER['HTTP_USER_AGENT'], "MicroMessenger") != false) {
  37. $_SESSION['type'] = 'wx';
  38. $Data = I('');
  39. $code = $Data['code'];
  40. if (empty($code)) {
  41. $R['flag'] = false;
  42. $R['msg'] = '操作失败,Code获取失败';
  43. echo json_encode($R);
  44. exit();
  45. } else {
  46. $user_openid = $this->s_curl('https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx41e478e592f9e04a&secret=fc165de4aa5cd24b628baa30b100e146&code=' . $code . '&grant_type=authorization_code');
  47. $res = M()->query("select phone from sp_wx_customuser where openid='" . $user_openid['openid'] . "'");
  48. $_SESSION['openid'] = $user_openid['openid'];
  49. $this->token = $_SESSION['openid'];
  50. if (count($res) > 0) {
  51. $_SESSION['phone'] = $res[0]['phone'];
  52. $_SESSION['openid'] = $user_openid['openid'];
  53. // $_SESSION['idopenid'] = $_SESSION['openid'];
  54. $R['msg'] = '操作成功';
  55. $R['flag'] = true;
  56. echo json_encode($R);
  57. exit();
  58. }
  59. }
  60. } else {
  61. $_SESSION['type'] = 'app';
  62. $_SESSION['app_token'] = "38fff9e882bb58973942a16bb5bb05d005ad08d1e";
  63. }
  64. $R['msg'] = '请登录/注册';
  65. $R['flag'] = false;
  66. echo json_encode($R);
  67. }
  68. //短信验证
  69. public function getVerificationCode()
  70. {
  71. include('/php/api_sdk/JdMessageSend2.php');
  72. $Data = I('phone');
  73. $Verx = rand('10000', '99999');
  74. $_SESSION['VerificationCode'] = '';
  75. $_SESSION['VerificationCode'] = $Verx . ',' . date('Y-m-d H:i:s');
  76. // print_r($_SESSION['VerificationCode']);
  77. sendSms("$Data", "$Verx");
  78. $arr[0]['VerificationCode'] = $_SESSION['VerificationCode'];
  79. $res['msg'] = '发送成功';
  80. $res['flag'] = true;
  81. $res['data'] = $arr;
  82. echo json_encode($res);
  83. }
  84. //登录并注册
  85. public function setSignUp()
  86. {
  87. $Data = I('');
  88. if (!isset($Data['phone']) || !isset($Data['VerificationCode'])) {
  89. $R['msg'] = '操作失败,缺少关键参数';
  90. $R['flag'] = true;
  91. echo json_encode($R);
  92. exit();
  93. }
  94. $Arr = explode(",", $_SESSION['VerificationCode']);
  95. $verifyTime = floor(strtotime(date('Y-m-d H:i:s'))) - floor(strtotime($Arr[1]));
  96. if ($verifyTime < 300) {
  97. if ($Arr[0] != $Data['VerificationCode']) {
  98. $R['msg'] = '验证码无效,请重新获取!';
  99. $R['flag'] = false;
  100. echo json_encode($R);
  101. exit();
  102. }
  103. $res = M()->query("select * from sp_wx_customuser where phone='" . $Data['phone'] . "' and type='" . $_SESSION['type'] . "'");
  104. if (empty($res)) {
  105. $data['phone'] = $Data['phone'];
  106. $data['idphone']= $Data['phone'];
  107. if ($_SESSION['type'] == 'app') {
  108. $data['openid'] = $_SESSION['app_token'];
  109. } else {
  110. $data['openid'] = $_SESSION['openid'];
  111. }
  112. $data['type'] = $_SESSION['type'];
  113. $data['createtime'] = date('Y-m-d H:i:s');
  114. $data['status'] = 1;
  115. $Res = M('wx_customuser')->add($data);
  116. if (!$Res){
  117. $R['msg'] = '注册失败,请重新注册';
  118. $R['flag'] = true;
  119. echo json_encode($R);
  120. exit();
  121. }
  122. }
  123. $_SESSION['phone'] = $data['phone'];
  124. $_SESSION['openid'] = $data['openid'];
  125. $_SESSION['idopenid'] = $_SESSION['openid'];
  126. $R['msg'] = '验证成功,正在登录';
  127. $R['flag'] = true;
  128. echo json_encode($R);
  129. } else {
  130. $R['msg'] = '验证码超时无效,请重新获取!';
  131. $R['flag'] = false;
  132. echo json_encode($R);
  133. }
  134. }
  135. private function s_curl($url)
  136. {
  137. $ch = curl_init();
  138. curl_setopt($ch, CURLOPT_URL, $url);
  139. curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  140. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  141. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
  142. $file_contents = curl_exec($ch);
  143. curl_close($ch);
  144. $arr = json_decode($file_contents, true);
  145. // var_dump($arr);
  146. return $arr;
  147. }
  148. private function s_curl2($url)
  149. {
  150. $ch = curl_init();
  151. curl_setopt($ch, CURLOPT_URL, $url);
  152. curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  153. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  154. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
  155. $file_contents = curl_exec($ch);
  156. curl_close($ch);
  157. return $file_contents;
  158. }
  159. }