这项接口分为以下4个步骤
1.建表
首先建立一张Users表,包含有用户id、用户昵称、用户手机号、用户密码、用户头像、创建时间、更新时间
这里使用了自建的一个ID生成服务,根据位数生成唯一的ID
2.关联模型
使用artisan命令生成一个Eloqument模型,名为Usres;
设置主键非自增;
设置表名;
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Users extends Model
{
//
protected $table = "users";
protected $fillable = ['id','phone','password','nick_name','head_image'];
public $incrementing = false;
protected $hidden = [
'password'
];
}
3.验证码验证
生成一个校验用的控制器,名为AuthController,构建一个注册方法register,
使用CodeService来进行短信验证码校验
/*
* 注册账号
* */
public function register(CodeService $codeService,RegisterRequest $request){
$phone = $request['phone'];
//验证码校验
if($codeService->checkCode($request['phone'],$request['code'])){
//账号唯一性校验
if (Users::where('phone','=',$phone)->first()){
return $this->failed('该手机号已注册');
}else{
$this->userService->createUser($request);
return $this->success('注册成功');
}
}else{
return $this->failed('验证码错误');
}
}
4.用户入库逻辑
新建一个UserService,来新建一条用户数据
/**
* 创建用户
*
* @param $request
*/
public function createUser($request){
$autoIdService = new AutoIdService();
$userId = $autoIdService->buildId('7');
$phone = $request->get('phone');
$password = $request->get('password');
$password_bcrypt = bcrypt($request->get('password'));
$user = new Users();
$user->id = $userId;
$user->phone = $phone;
$user->nick_name = '用户'.$userId;
$user->password = $password_bcrypt;
$user->head_image = 'default_head_image.png';
var_dump($user);
$user->save();
return $user;
}
最后在api.php内加上接口即可
这里将密码进行bcrypt加密入库