login.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <?php
  2. /**
  3. * 前台登录 退出操作
  4. *
  5. *
  6. *
  7. *
  8. */
  9. //use Shopnc\Tpl;
  10. defined('InShopNC') or exit('Access Invalid!');
  11. class loginControl extends mobileHomeControl
  12. {
  13. const mobile_login = 0;
  14. const anonymous_login = 1;
  15. const wxopen_login = 2;
  16. public function __construct(){
  17. parent::__construct();
  18. }
  19. private function authen()
  20. {
  21. }
  22. /**
  23. * 登录
  24. */
  25. public function indexOp()
  26. {
  27. if(!in_array($_POST['client'], $this->client_type_array)) {
  28. output_error('登录失败');
  29. return;
  30. }
  31. $type = $_POST['type'];
  32. $authenid = $_POST['authenid'];
  33. $array = array();
  34. if($type == mobile_login)
  35. {
  36. $array['member_mobile'] = $authenid;
  37. if(empty($authenid) || empty($_POST['password'])) {
  38. output_error('登录失败');
  39. return;
  40. }
  41. }
  42. elseif($type == anonymous_login)
  43. {
  44. $array['member_mobile'] = $authenid;
  45. if(empty($authenid)) {
  46. }
  47. }
  48. elseif($type == wxopen_login)
  49. {
  50. }
  51. else
  52. {
  53. }
  54. $model_member = Model('member');
  55. $member_info = $model_member->getMemberInfo($array);
  56. if(!empty($member_info))
  57. {
  58. $token = $this->_get_token($member_info['member_id'], $member_info['member_name'], $_POST['client']);
  59. if($token) {
  60. output_data(array('username' => $member_info['member_name'], 'key' => $token));
  61. } else {
  62. output_error('登录失败');
  63. }
  64. }
  65. else {
  66. output_error('用户名密码错误');
  67. }
  68. }
  69. public function genanonymousOp()
  70. {
  71. $info = $_POST['info'];
  72. if(empty($info)) {
  73. output_error('获取匿名身份失败.');
  74. }
  75. else
  76. {
  77. $anonymous_id = md5($info);
  78. $model_member = Model('member');
  79. $conditions = array();
  80. $conditions['anonymous_id'] = $anonymous_id;
  81. $user = $model_member->getMemberInfo($conditions,'member_id');
  82. if(empty($user))
  83. {
  84. $conditions['member_name'] = 'anonymous';
  85. $conditions['member_type'] = anonymous_login;
  86. $ret = $model_member->addMember($conditions);
  87. if($ret != false) {
  88. output_error('获取匿名身份失败.');
  89. } else {
  90. $json = array('userid' => $anonymous_id);
  91. }
  92. }
  93. else
  94. {
  95. }
  96. }
  97. }
  98. /**
  99. * 登录生成token
  100. */
  101. private function _get_token($member_id, $member_name, $client)
  102. {
  103. $model_mb_user_token = Model('mb_user_token');
  104. //重新登录后以前的令牌失效
  105. //暂时停用
  106. //$condition = array();
  107. //$condition['member_id'] = $member_id;
  108. //$condition['client_type'] = $_POST['client'];
  109. //$model_mb_user_token->delMbUserToken($condition);
  110. //生成新的token
  111. $mb_user_token_info = array();
  112. $token = md5($member_name . strval(TIMESTAMP) . strval(rand(0,999999)));
  113. $mb_user_token_info['member_id'] = $member_id;
  114. $mb_user_token_info['member_name'] = $member_name;
  115. $mb_user_token_info['token'] = $token;
  116. $mb_user_token_info['login_time'] = TIMESTAMP;
  117. $mb_user_token_info['client_type'] = $_POST['client'];
  118. $result = $model_mb_user_token->addMbUserToken($mb_user_token_info);
  119. if($result) {
  120. return $token;
  121. } else {
  122. return null;
  123. }
  124. }
  125. /**
  126. * 获取验证码
  127. */
  128. private function gencheckcode()
  129. {
  130. return '1234';
  131. }
  132. private function send_sms($phone,$code,$type)
  133. {
  134. }
  135. public function chekcodeOp() {
  136. $phone = $_POST['phonenumber'];
  137. $code = gencheckcode();
  138. send_sms($phone,$code,1);
  139. }
  140. /**
  141. * 注册
  142. */
  143. public function registerOp()
  144. {
  145. $model_member = Model('member');
  146. $register_info = array();
  147. $register_info['username'] = $_POST['username'];
  148. $register_info['password'] = $_POST['password'];
  149. $register_info['password_confirm'] = $_POST['password_confirm'];
  150. $register_info['checkcode'] = $_POST['password_confirm'];
  151. $register_info['email'] = $_POST['email'];
  152. $member_info = $model_member->register($register_info);
  153. if(!isset($member_info['error']))
  154. {
  155. $token = $this->_get_token($member_info['member_id'], $member_info['member_name'], $_POST['client']);
  156. if($token) {
  157. output_data(array('username' => $member_info['member_name'], 'key' => $token));
  158. } else {
  159. output_error('注册失败');
  160. }
  161. } else {
  162. output_error($member_info['error']);
  163. }
  164. }
  165. }