前后端分离spring security中loadUserByUsername参数name为空

  1. 检查前端传回的参数名称是否是username和password,spring security默认的参数名称是username和password,如果不是,可能更改前端的形参,也可以在WebSecurityConfigurerAdapter的configure实现接口里面添加你的参数名称
在后端设置前端传回的参数名称
http.
   ...//省略
  .formLogin()
  .usernameParameter("username")
  .passwordParameter("password")
  .permitAll()
  ...//省略
  1. 更改前端js
更改前
	//登录
    login() {
      //1.验证校验规则
      this.$refs.loginFormRef.validate(async vaild => {
        if (!vaild) return;
        const {data: res} = await this.$http.post("login", this.loginForm)//访问后台
        if (res.flag == "ok") {
          this.$message.success("登陆成功!!!");
          // console.log(res.user);
          window.sessionStorage.setItem("user", res.user);//将信息存在session中
          await this.$router.push({path: "/home"})//页面路由跳转
        } else {
          this.$message.error("登陆失败");
        }
      })
    }
更改后
    //登录
    login() {
      //1.验证校验规则
      this.$refs.loginFormRef.validate(async vaild => {
        if (!vaild) return;
        this.$http.post("login", qs.stringify(this.loginForm), {
          // 设置成表单提交
          headers: {"Content-Type": "application/x-www-form-urlencoded"}
        }).then(res => {
          // 操作。。。
          console.log(res.data)
          if (res.data.success == true) {
            this.$message.success("登陆成功!!!");
            window.sessionStorage.setItem("user", res.data.user);//将信息存在session中
            this.$router.push({path: "/home"})//页面路由跳转
          } else {
            this.$message.error("登陆失败!!!");
          }
        })
      })
    }
上一篇:移动端、PC端 网页特效


下一篇:c# webApi 获取不到入参,解决方案