问题描述
A 服务负责提供营销活动功能,某个活动仅允许新用户参加,那么 A 服务如何校验授权进来的用户是新用户呢?授权是由 B 服务提供,B 服务的授权逻辑是:如果该用户已注册,则直接登录成功,否则创建该用户。
由于授权登录操作是在 B 服务完成的,到了 A 服务之后并没有办法知道这个用户是新用户还是旧用户,如果是单体应用反而好解决,我只要在 A 服务查询一下 user 表即可。
新用户定义
用户首次注册
我能想到的解决方法
- 加入时间维度,在 A 服务校验,如果是当天注册的则为新用户?
- B 服务授权登录之后抛一个事件出来? A 服务接收?但这中间似乎会有时间差
- B 服务授权登录之后,将新用户丢到一个池子里面? A 服务去取?