登录界面和后端交互验证失败

来源:1-1 课前必读(不看会错过一个亿)

一抹茶

2019-04-17

在进行登录界面的真机测试中,输入合法的用户名和密码后,登录界面无法跳转,焦点一直在登录/注册按钮。
数据库中未进行更新,初步判定是数据库方面的操作出现问题

涉及代码如下:

UserController:

package com.piglig.controller;

import com.piglig.pojo.Users;
import com.piglig.pojo.vo.UsersVO;
import com.piglig.service.UserService;
import com.piglig.utils.JSONResult;
import com.piglig.utils.MD5Utils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("u")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/registOrLogin")
    public JSONResult registOrLogin(@RequestBody Users user) throws Exception {
        // 1. 判断用户名和密码不能为空
        if (StringUtils.isBlank(user.getUsername()) ||
                StringUtils.isBlank(user.getPassword())) {
            return JSONResult.errorMsg("用户名或密码不能为空...");
        }

        // 2. 判断用户名是否存在,如果存在就登录,如果不存在就注册
        boolean usernameIsExist = userService.queryUsernameIsExist(user.getUsername());
        System.out.println("222");
        Users userResult = null;
        if (usernameIsExist) {
            // 2.1 登录
            userResult = userService.queryUserForLogin(user.getUsername(), MD5Utils.getMD5Str(user.getPassword()));
            if (userResult == null) {
                return JSONResult.errorMsg("用户名或密码错误");
            }
        } else {
            // 2.2 注册
            user.setNickname(user.getUsername());
            user.setFaceImage("");
            user.setFaceImageBig("");
            user.setPassword(MD5Utils.getMD5Str(user.getPassword()));
            userResult = userService.saveUser(user);
        }

        UsersVO usersVO = new UsersVO();
        BeanUtils.copyProperties(userResult, usersVO);
        System.out.println("yes!");

        return JSONResult.ok(usersVO);
    }
}

UserService:

package com.piglig.service;

import com.piglig.pojo.Users;

public interface UserService {

    /**
     * 判断用户名是否存在
     * @param username 用户名
     */
    public boolean queryUsernameIsExist(String username);

    /**
     * 查询用户是否存在
     * @param username 用户名
     * @param pwd 密码
     * @return
     */
    public Users queryUserForLogin(String username, String pwd);


    /**
     * 用户注册
     * @param user 用户对象
     * @return
     */
    public Users saveUser(Users user);
}

UserServiceImpl:

package com.piglig.service.impl;

import com.piglig.mapper.UsersMapper;
import com.piglig.pojo.Users;
import com.piglig.service.UserService;
import org.n3r.idworker.Sid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.entity.Example.Criteria;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UsersMapper userMapper;

    @Autowired
    private Sid sid;

    @Transactional(propagation = Propagation.SUPPORTS)
    @Override
    public boolean queryUsernameIsExist(String username) {

        Users user = new Users();
        user.setUsername(username);

        Users result = userMapper.selectOne(user);


        return result != null;
    }

    @Transactional(propagation = Propagation.SUPPORTS)
    @Override
    public Users queryUserForLogin(String username, String pwd) {
        Example userExample = new Example(Users.class);
        Criteria criteria = userExample.createCriteria();
        criteria.andEqualTo("username", username);
        criteria.andEqualTo("password", pwd);

        Users result = userMapper.selectOneByExample(userExample);

        return result;
    }

    @Override
    public Users saveUser(Users user) {
        String userId = sid.nextShort();

        // TODO 为每个用户生成一个唯一的二维码
        user.setQrcode("");

        user.setId(userId);
        userMapper.insert(user);

        return user;
    }
}

图片描述
图片描述
图片描述

写回答

2回答

风间影月

2019-04-17

超时?前端打日志,后端打断点,跟一下看看。初步推测是手机和电脑不在同一个局域网

0
3
一抹茶
非常感谢!
2019-04-21
共3条回复

一抹茶

提问者

2019-04-17

前端日志如下
//img.mukewang.com/szimg/5cb7493b00014a3912250591.jpg

0
1
风间影月
还是不行吗?之前你在群里不是说可以了吗
2019-04-21
共1条回复

Netty+Spring Boot仿微信-全栈开发高性能后台及客户端

SpringBoot/Netty+MUI全栈开发 同时搞定后台+ Android&iOS

1501 学习 · 693 问题

查看课程