前后端分离spring security中loadUserByUsername参数name为空
作者:互联网
- 检查前端传回的参数名称是否是username和password,spring security默认的参数名称是username和password,如果不是,可能更改前端的形参,也可以在WebSecurityConfigurerAdapter的configure实现接口里面添加你的参数名称
在后端设置前端传回的参数名称
http.
...//省略
.formLogin()
.usernameParameter("username")
.passwordParameter("password")
.permitAll()
...//省略
- 更改前端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("登陆失败!!!");
}
})
})
}
标签:vaild,spring,user,为空,res,login,data,message,name 来源: https://blog.csdn.net/God__is__a__girl/article/details/120621012