三阶段Day09

1. 实现用户登录操作

1.1 编辑页面JS

1.1.1 属性绑定

1.编辑页面

 2.属性定义

 

1.2 Form表单校验

1.2.1 Form表单校验规则

Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可
2个核心属性: 1.rules 定义校验规则 2.prop 设定采用哪种校验方式.

1.2.2 校验规则实现

1.标识页面

 2.完成校验规则

 3.校验页面展现

 

1.3 重置按钮实现

1.3.1 官网API

说明: 通过resetFields的方法,实现表单数据的重置操作.

 

1.3.2 重置按钮

  1. 添加点击事件

      2. 编辑点击事件

 

1.4 登录实现

1.4.1 添加事件

说明:为登录按钮添加点击事件

1.4.2 登录步骤

1.再次校验用户的数据是否有效
2.发起Ajax请求实现用户登录请求. username/password post请求
3.在后端服务器 通过username/password 进行数据的查询.
结果 1.有数据 用户名密码正确. 2.无数据 用户名或密码错误
4.后端将数据处理完成之后,返回特定的数据. 告知前端 数据处理情况(回执!!!)
status=200 代表操作成功!!! status=201 表示业务操作失败
5.前端通过JS判断服务器的回执. 如果状态码等于200 提示用户登录成功, 否则告知用户用户名或密码错误.
6.一般为了校验用户是否登录,会返回一个特殊的密钥-TOKEN(密文),如果没有密钥则需要重新登录.

1.4.3 页面校验API

 

1.4.4 用户登录接口文档

1.4.5 用户登录操作

1.4.6 前端请求路径URL地址

1.4.7 构建系统返回值SysResult对象

说明: 前后端在进行交互时需要有一种统一的方式进行返回, 规定在京淘项目后端采用SysResult对象进行统一返回
VO层说明: 前端获取服务器数据时 一般都通过VO层进行封装.

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult {

    private Integer status; //状态码信息
    private String msg;     //提示信息
    private Object data;    //封装业务数据

    public static SysResult fail(){
        return new SysResult(201, "服务器调用失败",null );
    }

    public static SysResult success(){
        return new SysResult(200, "业务执行成功", null);
    }

    /**
     * 1.方法要被别人调用!!!
     * 2.该方法被调用时 调用者负责参数的传递.
     * @param data
     * @return
     */
    public static SysResult success(Object data){
        return new SysResult(200, "业务执行成功", data);
    }

    public static SysResult success(String msg,Object data){
        return new SysResult(200, msg, data);
    }
}

 

1.4.8 关于UUID说明

说明: UUID是一个32位16进制的字符串,通常可以保证 每次生成的串都是唯一的.
补充A: 16进制取值区间 0-9 A-F 32个0~~~~~~32个F
问: UUID共有多少种可能性!!! (24)32= 2^128
3.4*10^38

1.4.9 编辑UserController

1.4.10 编辑UserService

/**
     * 说明: 根据用户名和密码判断数据是否有效
     * 步骤:
     *      1.将明文进行加密处理. md5加密/md5Hash/sha1
     *      2.根据加密后的数据查询数据库
     *      3.判断结果是否有效
     *          有值: 返回特定字符串token=123
     *          null: u/p 不正确  返回null
     * @param user
     * @return
     */
    @Override
    public String login(User user) {
        //1.获取原始密码
        String password = user.getPassword();
        //2.将密码进行加密处理
        String md5Str = DigestUtils.md5DigestAsHex(password.getBytes());
        //3.将密文传递给对象
        user.setPassword(md5Str); //username/password
        //根据对象中不为null的属性充当where条件
        QueryWrapper<User> queryWrapper = new QueryWrapper(user);
        //4.根据条件查询数据库
        User userDB = userMapper.selectOne(queryWrapper);
        //5.定义token数据 限定条件 token不能重复
        // UUID: 随机字符串 3.4*10^38 种可能性
        String uuid = UUID.randomUUID().toString()
                .replace("-","");
        return userDB==null?null:uuid;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值