请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

涉及代码如下:

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回答

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

0 回复 有任何疑惑可以回复我~
  • 提问者 一抹茶 #1
    手机跟电脑开热点试了一下,发现:
    情况基本一致,在输入合法的用户名和密码时,仍然处于焦点状态。
    删除后。输入不合法的用户名,弹出提示框
    继续输入合法字符,每次前端日志输出的都是第一次不合法的用户名和密码
    回复 有任何疑惑可以回复我~ 2019-04-17 23:41:06
  • 应该是手机端不能访问电脑服务端,千万不要使用手机热点,请务必使用同一个WiFi。建议进群和大家一起交流更方便
    回复 有任何疑惑可以回复我~ 2019-04-17 23:44:20
  • 提问者 一抹茶 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-04-21 12:12:09
提问者 一抹茶 2019-04-17 23:42:06

前端日志如下
https://img1.sycdn.imooc.com//szimg/5cb7493b00014a3912250591.jpg

0 回复 有任何疑惑可以回复我~
  • 还是不行吗?之前你在群里不是说可以了吗
    回复 有任何疑惑可以回复我~ 2019-04-21 12:15:24

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号