账号注册


上一篇 : 路由定义 下一篇: 账号登录



该项目采用手机号+密码+图形验证码登录


点击获取短信验证码按钮时  需要弹出图形验证码  验证成功以后 自动发送短信验证码


1  获取图形验证码

/**
* 生成图形验证码
* @return mixed
*/
public function getCode(){
   $validate = new Validate([
       'mobile' => 'require'
   ]);
   $validate->message([
       'mobile.require' => '请输入手机号!'
   ]);

   $data = $this->request->param();
   if (!$validate->check($data)) {
       $this->error($validate->getError());
   }
   $mobile = $data['mobile'];
   $key = $mobile.'generate';
   $config = [
       'length'=>4,
       'useNoise'=>false,
       'fontSize'=>16
   ];
   $captcha = new Captcha($config);
   return $captcha->entry($key);
}

请求以后返回一个画布

image.png

2 验证图形验证码

/**
* 验证图片验证码
*/
public function checkVerificationCode(){
   $validate = new Validate([
       'mobile' => 'require',
       'code'=>'require',
   ]);

   $validate->message([
       'mobile.require' => '请输入手机号!',
       'code.require' => '验证码不能为空!',
   ]);

   $data = $this->request->param();
   if (!$validate->check($data)) {
       $this->error($validate->getError());
   }

   $key = $data['mobile'].'generate';
   $captcha = new Captcha();
   $result = $captcha->check($data['code'], $key);
   if($result){
       //验证成功发送短信验证码
       // TODO 等待接口

   }
   return $this->apiSuccessReturn('验证成功');

}


image.png



3 用户注册  


public function register(){
   $validate = new Validate([
       'mobile' => 'require',
       'code'=>'require',
       'user_pass'=>'require',
   ]);

   $validate->message([
       'mobile.require' => '请输入手机号!',
       'code.require' => '验证码不能为空!',
       'user_pass.require' => '请填密码!',
   ]);

   $data = $this->request->param();
   if (!$validate->check($data)) {
       $this->error($validate->getError());
   }
   $userModel = new User();
   if (preg_match('/(^(13\d|15[^4\D]|17[13678]|18\d)\d{8}|170[^346\D]\d{7})$/', $data['mobile'])) {
       $userModel->where('mobile', $data['mobile']);
   } else {
      return $this->apiErrorReturn('请输入正确的手机号!');
   }

   //短信验证码我这里不再验证


   $findUserCount = $userModel->count();
   if($findUserCount){
       return $this->apiErrorReturn('此账号已存在');
   }

   $userModel->mobile = $data['mobile'];
   $userModel->status = 1;
   $userModel->user_pass = up61_pass($data['user_pass']);
   $userModel->allowField(true)->isUpdate(false)->save();
   return $this->apiSuccessReturn('注册成功');

}

这里需要新建一个加密函数

/**
* 密码加密
* @param $pw
* @return string
*/
function up61_pass($pw){
   $authCode = 'up61';
   $result = "###" . md5(md5($authCode . $pw));
   return $result;
}

新建一个用户模型
<?php
/**
* Created by PhpStorm.
* User: [一秋]
* Date: 2018/3/28
* Time: 16:42
* Desc: 成功源于点滴
*/

namespace app\index\model;


use think\Model;

class User extends Model
{
   protected $autoWriteTimestamp = 'datetime';
   protected $updateTime = false;

}


返回结果


{

    "code": 200,

    "msg": "注册成功",

    "data": []

}


如果账号存在 则返回如下结果

{

    "code": 0,

    "msg": "此账号已存在"

}


上一篇 : 路由定义 下一篇: 账号登录