Laravel构建注册接口

这项接口分为以下4个步骤
1.建表
首先建立一张Users表,包含有用户id、用户昵称、用户手机号、用户密码、用户头像、创建时间、更新时间


image.png

这里使用了自建的一个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加密入库

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容