一. 请求传的参数名称错误,且没有配置usernameParameter
比如登陆的时候向后端发起请求,用户名的参数名称是name或者nickname,并且没有配置.usernameParameter()的话,后端是获取不到值的。
解决方法
1.将请求参数名改为username
2.在config中配置.usernameParameter(“参数名”)
比如.usernameParameter(“name”)
.usernameParameter(“nickname”)
二. security的config里面设置了.formLogin(),却没有使用表单提交
比如使用axios进行post请求提交。
解决方法
1.改为表单提交
2.伪造表单提交
// 2.1: 转换请求数据格式
let data = this.trans(this.user);
axios.post(url,data,{
// 2.2: 添加这个请求头
headers: {
'Content-Type':'application/x-www-form-urlencoded'
}
})
//转换请求数据格式方法
trans:function(user){
let url = "";
for (let k in user) {
let value = user[k] !== undefined ? user[k] : "";
url += `&${k}=${encodeURIComponent(value)}`;
}
return url ? url.substring(1):"";
}