WSO2-IS 6.0.0启用邮箱域后手机号登录报错的解决方法
解决WSO2 Identity Server 6.0.0同时支持邮箱+密码和手机号+密码登录的步骤
1. 调整deployment.toml配置
在deployment.toml文件中补充用户名格式校验规则,同时兼容邮箱和手机号格式,配置如下:
[tenant_mgt] enable_email_domain= true [authentication.authenticator.basic.parameters] # 正则同时匹配邮箱格式和带国际区号的手机号(可根据实际业务调整手机号匹配规则) UsernameRegex= "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$|^\\+?[0-9]{10,15}$"
2. 配置用户存储的多登录属性
登录WSO2 IS管理控制台,按以下步骤操作:
- 进入主菜单 > 用户和角色 > 用户存储
- 选择目标用户存储(如默认的Primary),点击编辑
- 在登录属性字段中,添加
email和mobile,多个属性用逗号分隔(格式:email,mobile) - 保存配置
3. 重启WSO2 Identity Server
修改配置后重启服务,确保所有更改生效。
4. 功能验证
分别使用邮箱+密码、手机号+密码登录服务提供商(SP),确认两种方式均能正常完成认证,且不再出现Invalid username! Username should be an E-Mail address报错。
提示:如果业务中手机号格式与示例正则不符,可自行调整
UsernameRegex里的手机号匹配规则,适配实际场景。
内容的提问来源于stack exchange,提问作者Nipuna Upeksha
相关产品推荐
相关产品推荐

