Sa-Token icon indicating copy to clipboard operation
Sa-Token copied to clipboard

能否让@SaCheckApiKey和@SaCheckPermission自动选择性校验?

Open KairosSun opened this issue 8 months ago • 5 comments

建议增加的新功能:

能否让@SaCheckApiKey和@SaCheckPermission自动选择性校验?

应用场景阐述:

在做ApiKey模块的时候,碰到一个问题,原本例如增删改查的接口,也想着需要用ApiKey调用,而不用重新去专门写apikey可调用的接口,但是这个接口在用户正常登录的时候,拥有对应权限也可以访问,后来就有了下面的设想,代码如下:

Image

当我把@SaCheckApiKey和@SaCheckPermission放在一起后,选择直接登录调用接口,却显示“无效ApiKey”,能否在传有apikey参数的时候走@SaCheckApiKey,没有则正常走@SaCheckPermission校验呢?

如果不可行,请告知我不能这样做的理由,谢谢大佬!!!

< 备注:请尽量详细描述功能应用场景 >

KairosSun avatar Apr 25 '25 02:04 KairosSun

@SaCheckOr

建议增加的新功能:

能否让@SaCheckApiKey和@SaCheckPermission自动选择性校验?

应用场景阐述:

在做ApiKey模块的时候,碰到一个问题,原本例如增删改查的接口,也想着需要用ApiKey调用,而不用重新去专门写apikey可调用的接口,但是这个接口在用户正常登录的时候,拥有对应权限也可以访问,后来就有了下面的设想,代码如下:

Image

当我把@SaCheckApiKey和@SaCheckPermission放在一起后,选择直接登录调用接口,却显示“无效ApiKey”,能否在传有apikey参数的时候走@SaCheckApiKey,没有则正常走@SaCheckPermission校验呢?

如果不可行,请告知我不能这样做的理由,谢谢大佬!!!

< 备注:请尽量详细描述功能应用场景 >

codeLikeO avatar Apr 25 '25 04:04 codeLikeO

@SaCheckOr

建议增加的新功能:

能否让@SaCheckApiKey和@SaCheckPermission自动选择性校验?

应用场景阐述:

在做ApiKey模块的时候,碰到一个问题,原本例如增删改查的接口,也想着需要用ApiKey调用,而不用重新去专门写apikey可调用的接口,但是这个接口在用户正常登录的时候,拥有对应权限也可以访问,后来就有了下面的设想,代码如下: Image 当我把@SaCheckApiKey和@SaCheckPermission放在一起后,选择直接登录调用接口,却显示“无效ApiKey”,能否在传有apikey参数的时候走@SaCheckApiKey,没有则正常走@SaCheckPermission校验呢? 如果不可行,请告知我不能这样做的理由,谢谢大佬!!! < 备注:请尽量详细描述功能应用场景 >

可以给一个具体示例嘛,我在@SaCheckOr中并没有看到apikey的支持

KairosSun avatar Apr 25 '25 05:04 KairosSun

看了一下 框架原生确实没有支持 但是你应该可以通过 SaAnnotationStrategy.instance.registerAnnotationHandler(); 自己扩展一个类型校验 @KairosSun

codeLikeO avatar Apr 25 '25 06:04 codeLikeO

楼上正解,可以自己注册一个注解处理器来解决

click33 avatar Apr 25 '25 06:04 click33

我修改了sa-token-core,在@SaCheckOr增加的apikey相关的代码,自己已经通过测试了,可以合并嘛 @click33

KairosSun avatar Apr 25 '25 07:04 KairosSun