登录界面和后端交互验证失败
来源: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回答
-
超时?前端打日志,后端打断点,跟一下看看。初步推测是手机和电脑不在同一个局域网
032019-04-21 -
一抹茶
提问者
2019-04-17
前端日志如下
012019-04-21
Netty+Spring Boot仿微信-全栈开发高性能后台及客户端
SpringBoot/Netty+MUI全栈开发 同时搞定后台+ Android&iOS
1501 学习 · 693 问题
相似问题
