ruoyi-cloud 使用ApiPost模拟登录
ruoyi-cloud 使用ApiPost模拟登录
简述
使用自带的ruoyi-cloud模拟登陆时,需要先使用http://localhost/dev-api/code获取验证码及uuid,然后通过http://localhost/dev-api/login将code及uuid的正确值代入,当两者都正确后才能真正进入login方法进行用户名和密码验证,该拦截器位于ValidateCodeFilter文件夹中,其中设置了VALIDATE_URL,当包含时则必须有正确的验证码方可继续执行。因此对于使用ApiPost来说,比较难实现。
实现
那我们就另辟蹊径,通过添加方法来实现ApiPost模拟登录
添加新的登陆方法
将TokenController中的login方法复制,并重新命名为SyncLogin。
@PostMapping("syncLogin")
public R<?> loginByTb(@RequestBody LoginBody form)
{
// 用户登录
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
// 获取登录token
return R.ok(tokenService.createToken(userInfo));
}
注意:由于拦截器中判断VALIDATE_URL的方法为StringUtils.containsAnyIgnoreCase,因此只要前缀为login的都会走验证码,因此不能开头为login。
在Nacos中添加白名单
访问nacos,默认用户名和密码都为Nacos。
选择网关的yml的编辑按钮
在配置内容中 ignore->whites 中添加:- /auth/syncLogin
发布。
使用ApiPost模拟登录
链接地址为:http://192.168.1.21:8088/auth/syncLogin
使用Post的方式进行Json格式的传输,传输json为
{
"password": "Sjtb@123.com",
"username":"sjtb"
}
点击发送后正确的返回值为
{
"code": 200,
"msg": null,
"data": {
"access_token": "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo2LCJ1c2VyX2tleSI6IjI1NjE0NWI1LWNhYzUtNGZmNS1hMTM4LWVlZjA2NTJmM2QxYiIsInVzZXJuYW1lIjoic2p0YiJ9._Ci8f9IBkTBpkz979AH_dXscuiWu4mHXGCcpD2uwRwlnaIP4BaJSDpunMyP2FQEZ8ZPyUymTPJVO7YdVOVeObw",
"expires_in": 720
}
}
访问
当登录成功后,可直接进行该用户权限下的所有后台操作。
例如获取用户信息:http://localhost/dev-api/system/user/getInfo
在Header中添加参数名Authorization,值为登陆后返回的access_token的数值。
返回结果如图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」