WSO2 Identity Server 5.11.0如何自动生成SMS OTP请求的唯一动态ID
解决WSO2 Identity Server 5.11.0 SMS OTP自动生成唯一UUID参数的方案
针对你的需求,直接通过修改WSO2 IS内置的SMS发送序列,添加脚本生成UUID并注入请求Payload即可实现,具体步骤如下:
登录IS管理控制台,进入扩展 → 调解器,点击「添加调解器」:
- 类型选择「脚本调解器」,名称设为
GenerateSMSRequestId - 脚本内容填写:
var uuid = java.util.UUID.randomUUID().toString(); mc.setProperty("smsRequestId", uuid); - 保存该调解器
- 类型选择「脚本调解器」,名称设为
进入配置 → 序列,搜索并编辑
SMSOTPHTTPRequestSequence序列:- 在序列的最前端(HTTP发送步骤之前),添加刚才创建的
GenerateSMSRequestId调解器 - 找到序列中的「HTTP Payload」调解器,修改
id字段的值为$ctx:smsRequestId,修改后的Payload如下:{ "UserName": "user", "Password": "pass", "body": "$ctx.msg", "lang": "en", "from": "some service", "to": "$ctx.num", "id": "$ctx:smsRequestId" }
- 在序列的最前端(HTTP发送步骤之前),添加刚才创建的
保存序列后,测试SMS OTP功能,每次发送短信时,请求中的
id参数会自动生成唯一的UUID值。
如果不想单独创建调解器,也可以直接在SMSOTPHTTPRequestSequence中内嵌脚本调解器,把生成UUID的代码直接写在序列里,效果是一样的。
内容的提问来源于stack exchange,提问作者Elias
相关产品推荐
相关产品推荐

