使用external_id调用API回复

是否有可能使用SSO的external_id来调用API回复帖子,以避免每次都需要先通过external_id确定用户的用户名

不,那是不可能的。

不过你不需要“每次”都确定它,你可以选择在调用方缓存它。

如果A用户通过discourse更改了名称,恰好B用户这时也改了名称,且改为了A之前的名称,如果通过缓存获取A的名称,有没有可能导致A用户的回复被绑定到B用户

是的,尽管这听起来有点理论化,但这绝对是可能的。最好是能够根据用户ID进行身份验证。

在 user.updated 上设置一个 webhook 来刷新该用户的缓存!

是的,这应是一个比较好的解决办法。感谢。
但是否还有可能webhook因为网络波动丢包,导致缓存未刷新。
虽然可以通过缓存TTL一定程度上解决,但在TTL缓存失效前仍然有可能出现问题。
最后,比较安全的还是通过external_id获取准确的用户名。
当然,这些都是我个人理论上的猜测