apikey的使用疑问
对以下问题有疑问:
系统原本的增删改查接口,想通过apikey的方式让外部系统调用。sa支持配置了@SaCheckApiKey,调用带上了apikey的情况下,不检验token,只校验ApiKey吗? < 备注:请尽量详细描述问题所在 > 测试过程中发现,注册 Sa-Token 拦截器的情况下,如果某方法加了@SaCheckApiKey,调用时带了apikey,还是会先验证token,再验证apikey。怎么实现有携带ApiKey的情况,就不校验token呢
针对这个问题,在 #774 中我已经提出了,可以参考一下
针对你的问题,我也复现了,是 #774 的一个延申问题。 后面我是这么解决的:
- 在StpUtil.checkLogin()之前,notMatch()你需要给apikey开放的路径
- 在接口处只要这样写,就可以在仅token或者仅apikey的情况下成功访问了,其中@SaCheckPermission可以换成其他需要校验token的注解即可
针对你的问题,我也复现了,是 #774 的一个延申问题。 后面我是这么解决的:
- 在StpUtil.checkLogin()之前,notMatch()你需要给apikey开放的路径
- 在接口处只要这样写,就可以在仅token或者仅apikey的情况下成功访问了,其中@SaCheckPermission可以换成其他需要校验token的注解即可
其中@SaCheckOr中的api是我自己修改sa-token-core中的注释源码后打包后才会有的,目前已经提交了合并请求,作者还没有采纳
针对你的问题,我也复现了,是 #774 的一个延申问题。 后面我是这么解决的:
- 在StpUtil.checkLogin()之前,notMatch()你需要给apikey开放的路径
- 在接口处只要这样写,就可以在仅token或者仅apikey的情况下成功访问了,其中@SaCheckPermission可以换成其他需要校验token的注解即可
其中@SaCheckOr中的api是我自己修改sa-token-core中的注释源码后打包后才会有的,目前已经提交了合并请求,作者还没有采纳
图片上传出现了问题,我在这里贴出示例 @GetMapping("/request") @SaCheckOr( apikey = @SaCheckApiKey, permission = @SaCheckPermission("request") ) public SaResult request() { System.out.println("成功!!"); return SaResult.ok(); }
我觉得供第三方调用的接口,因该单独拎出来管理,哪怕业务逻辑是一样的,混淆在一起不好管理
同样遇到了问题