比如设计api的时候,存在2个合法的调用方,比如a和b;
api分为2类:部分api需要获取到调用方的身份信息(只是拿身份信息作为输入,比如插表或者查询条件),部分不需要
a调用全部api的时候,因为a是在某网站里面调用(ajax),所以登录了,能获取到身份信息。
b直接调用不需要用户信息的api(但是这些api也会被a调用)
问题。
如果我做个拦截器,拦截所有api请求(限制条件为,必须登录才能调用),那么对b是不合理的。因为b调用的api不需要身份信息
如果我不拦截请求,那么所有api对所有的人都是public的了,任何人都可以调用不需要身份信息的api,存在安全风险。
所以想问下如何处理?
看了下Jwt,好像不太适合应用场景
你之所以出现这类的原因是因为你的接口没设计好
接口必须为单一职责,你的接口a也调用了接口b,明显就是接口逻辑不合理
a需要b的接口内容,那么正确的做法就是把a接口和b接口公共的逻辑抽象单独出来
代码演示: