You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过WSO2 IS实现仅手机号+SMS OTP认证获取Access Token

基于WSO2 Identity Server实现手机号+SMS OTP认证并生成Access Token方案

前置配置(WSO2 IS侧预完成)

  • 对接SMS短信网关:登录WSO2 IS管理控制台,依次进入身份提供商 > Resident Identity Provider > 账户管理 > SMS OTP配置,填入你使用的第三方SMS网关的接口地址、请求鉴权信息、短信模板等参数,配置完成后先做短信发送测试,确保功能正常。
  • 配置用户属性:确认用户存储方案中已开放mobile(手机号)字段的读写权限,后续WSO2 IS会通过该字段匹配对应用户账号。
  • 注册移动端服务提供商:在WSO2 IS控制台进入服务提供商 > 新增,创建对应移动端应用的服务提供商配置,再进入入站认证配置 > OAuth/OpenID Connect配置,记录生成的Client ID,如果是公开类型的移动端应用可选择Public客户端类型,无需配置Client Secret,同时开启自定义授权类型支持。
  • 适配SMS OTP授权类型:基于WSO2 IS的扩展授权开发点新增自定义授权类型,命名为sms_otp,也可以直接使用WSO2 IS官方提供的OTP认证扩展包完成适配。

完整认证流程

  1. 用户在移动端应用内输入本人手机号,应用将手机号发送到WSO2 IS的OTP触发接口

调用WSO2 IS的/api/identity/user/v1/me/sms-otp接口即可触发OTP发送,请求头携带应用的Client ID完成应用身份校验,请求体传入用户填写的手机号。WSO2 IS会先校验该手机号是否对应用户存储内的有效账号,校验通过后自动生成随机OTP,通过之前配置的SMS网关发送到该手机号。如果需要支持新用户免注册直接登录,可以在校验到手机号无对应账号时,自动创建新用户再发送OTP。

  1. 用户收到短信后,在应用内输入收到的OTP,应用携带以下参数调用WSO2 IS的OAuth2令牌接口/oauth2/token申请Access Token:
grant_type: sms_otp
mobile: 用户填写的手机号
otp: 用户输入的短信OTP
client_id: 提前注册生成的应用Client ID
  1. WSO2 IS接收到令牌请求后,会校验手机号与OTP是否匹配、OTP是否在有效期内,所有校验通过后,会为该手机号对应的用户账号签发标准Access Token,也可根据配置同步签发Refresh Token、ID Token。
  2. 移动端后续访问业务接口时,在请求头中携带Authorization: Bearer <获取到的Access Token>即可完成身份认证。

可调参数说明

你可以直接在WSO2 IS的SMS OTP配置页面调整OTP长度、有效时长、单日发送上限、重试次数等规则,无需修改代码逻辑。

内容的提问来源于stack exchange,提问作者Ismail Anjrini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:24:07