后台登录失败

后台登录失败

idea中成功调用了MUserController中的check_login,但是无法跳转

http://img1.sycdn.imooc.com//climg/5ffc3c750959e5bf16080868.jpg


测试用户名错误

http://img1.sycdn.imooc.com//climg/5ffc3c930975894d09430091.jpg

测试密码错误

http://img1.sycdn.imooc.com//climg/5ffc3cca09899fb408740104.jpg

均正确

http://img1.sycdn.imooc.com//climg/5ffc3d01090c5ad213300222.jpg



MUserController

@Controller
@RequestMapping("/management/user")
public class MUserController {
@Resource
   UserService userService;

   @PostMapping("/check_login")
public Map checkLogin(String username, String password, HttpSession session) {
Map result = new HashMap();
       try {
User user = userService.checkLogin(username, password);
           session.setAttribute("loginUser", user);
           result.put("code", "0");
           result.put("message", "success");
           result.put("redirect_url","/management/index.html");
       } catch (BussinessException ex) {
ex.printStackTrace();
           result.put("code", ex.getCode());
           result.put("message", ex.getMsg());
       }
return result;
   }
}



login.ftl

<script>
   // 表单提交事件
   layui.form.on("submit(login)" , function(formdata){//data参数包含了当前表单的数据
       console.log(formdata);
       //发送ajax请求进行登录校验
       layui.$.ajax({
url : "/management/user/check_login",
           data : formdata.field, //提交表单数据
           type : "post",
           dataType : "json" ,
           success : function(json){
console.log(json);
               if(json.code == "0"){ //登录校验成功
                   // layui.layer.msg("登录成功");
                   //跳转url
                   window.location.href=json.redirect_url;
               }else{
layui.layer.msg(json.message);
               }
}
})
return false;//submit提交事件返回true则表单提交,false则阻止表单提交
   })


userServiceImpl

@Service("userService")
public class UserServiceImpl implements UserService {
@Resource
   private UserMapper userMapper;

   public User checkLogin(String username, String password) {
QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
       queryWrapper.eq("username", username);
       User user = userMapper.selectOne(queryWrapper);
       if (user == null) {
throw new BussinessException("U02", "用户不存在");
       }
String md5 = MD5Utils.md5Digest(password, user.getSalt());
       if (!md5.equals(user.getPassword())) {
throw new BussinessException("U03", "输入密码有误");
       }
return user;
   }
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿满 2021-01-12 10:02:12

同学你好,在如下checkLogin()方法上应该有@ResponseBody注解,表示数据以json类型返回。

http://img1.sycdn.imooc.com//climg/5ffd025b093f123707450190.jpg

如:

http://img1.sycdn.imooc.com//climg/5ffd03170949214005320123.jpg

建议同学添加再试试。

祝学习愉快~


  • 提问者 Zarathustra1816763 #1

    谢谢,成功解决了,但是还有一个问题,现在这样虽然可以起到登录的作用,但是可以不登录直接访问后台界面

    http://img1.sycdn.imooc.com//climg/5ffd2dde09b9aa1d15490734.jpg

    请问,对于Controller,如何设置,使其能够起到过滤器的作用?

    2021-01-12 13:05:21
  • 同学你好,可以增加一个拦截器,对所有访问后台的链接进行拦截,判断是否登录,如果登录了则放行,如果没有登录,则跳转到登录页面。

    祝:学习愉快~

    2021-01-12 14:00:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师