loadUserByUsername无法获取到参数的可能情况

it2026-06-15  11

一. 请求传的参数名称错误,且没有配置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):""; }
最新回复(0)