<?php /** * 登录注册 * Author: xiaojie * DateTime: 2018/11/26 13:50 */ namespace app\portal\controller; use app\portal\model\UserModel; use app\portal\validate\UsersValidate; use app\user\model\CommentModel; use cmf\controller\HomeBaseController; use think\Cookie; use think\Session; use anerg\OAuth2\OAuth; use think\Config; class LoginController extends HomeBaseController { private $config; /** * 登录,注册页面 */ public function login(){ // $login_type = $this->request->param('login_type','1','intval'); // //1->登录 2->注册 // if($login_type == 1){ // $login_title = '登录'; // }elseif($login_type == 2){ // $login_title = '注册'; // }else{ // $this->redirect(url('index/index')); // } // $user_login_info = Cookie::get('user_login_info'); // if($user_login_info){ // $mobile = $user_login_info['mobile']; // $password = $user_login_info['password']; // $is_remember_password = 1; // } // $this->assign('login_type',$login_type); // $this->assign('login_title',$login_title); // $this->assign('mobile',isset($mobile)?$mobile:''); // $this->assign('password',isset($password)?$password:''); // $this->assign('is_remember_password',isset($is_remember_password)?$is_remember_password:'0'); return $this->fetch(); } /** * 手机号登录 */ public function ajax_login(){ //提交参数手机号(mobile),密码(user_pass) $param = $this->request->param(); $validate = new UsersValidate(); $userModel = new UserModel(); $map = [ 'mobile' => $param['mobile'], 'user_pass' => cmf_password($param['user_pass']), 'user_type' => 2, 'user_status' => 1, ]; $userInfo = $userModel->where($map)->find(); if(!$userInfo){ $this->apiResponse(0,'账号或密码错误'); } $ip = get_client_ip(); $data = [ 'id' => $userInfo['id'], 'last_login_time' => time(), 'last_login_ip' => $ip, ]; if(!$validate->scene('edit')->check($data)){ $this->apiResponse(0,$validate->getError()); } $res = $userModel->isUpdate(true)->save($data); if($res){ $session = new Session(); $session->set('userInfo',$userInfo); $this->apiResponse(1,'登录成功'); } $this->apiResponse(0,'未知错误'); } /** * 注册 */ public function ajax_register(){ //提交参数手机号(mobile),验证码(mobile_code),密码(user_pass) $param = $this->request->param(); //验证验证码是否正确 $common = new CommonController(); $common->validateMobileCode($param); //验证场景add $validate = new UsersValidate(); if(!$validate->scene('add')->check($param)){ $this->apiResponse(0,$validate->getError()); } if(empty($param['user_pass'])){ $this->apiResponse(0,'密码不能为空!'); } //是否已注册 $userModel = new UserModel(); $userInfo = $userModel->where(['mobile'=>$param['mobile'],'user_type'=>2])->find(); if($userInfo){ $this->apiResponse(0,'此账号已被注册'); } //新增注册信息 $info['mobile'] = $param['mobile']; $info['user_pass'] = cmf_password($param['user_pass']); $info['user_type'] = 2; $info['create_time'] = time(); $res = $userModel->allowField(true)->save($info); if($res){ $this->apiResponse(1,'注册成功'); } $this->apiResponse(0,'未知错误'); } // public function updateInfo(){ // $param = $this->request->param(); // $data = [ // 'id' => $userInfo['id'], // 'last_login_time' => time(), // 'last_login_ip' => $ip, // ]; // // if(!$validate->scene('edit')->check($data)){ // $this->apiResponse(0,$validate->getError()); // } // $res = $userModel->isUpdate(true)->save($data); // } //第三方微信登录 public function wx_login(){ $config = Config::get('wx_login'); $app_id = $config['app_id']; $redirect_uri = $config['redirect_uri']; $scope = $config['scope']; $state = md5(uniqid(rand(), TRUE)); $url = 'https://open.weixin.qq.com/connect/qrconnect?appid='.$app_id.'&redirect_uri='.$redirect_uri.'&response_type=code&scope='.$scope.'&state='.$state.'#wechat_redirect'; $res = $this->http_get($url); var_dump(11); var_dump($res);exit; } //curl get请求 public function http_get($url){ $curl = curl_init();//启动一个CURL会话 curl_setopt($curl, CURLOPT_URL,$url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环 curl_setopt($curl, CURLOPT_HEADER, false);//不开启header curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回 $result = curl_exec($curl); //执行操作 curl_close($curl); return $result; } //curl post请求 public function http_post($url,$data,$headers){ $curl = curl_init();//启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_POST, true); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环 curl_setopt($curl, CURLOPT_HEADER, true); // 开启header curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);//请求头部 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回 $result = curl_exec($curl); //执行操作 curl_close($curl); return $result; } }