如何通过keycloak-js从Keycloak获取登录用户的Locale信息
获取Keycloak登录页面选定的Locale(keycloak-js)
当用户在Keycloak登录页面选择语言后,你可以通过以下两种方式在应用内获取该locale信息:
- 从解析后的ID Token直接读取
登录成功后,keycloak-js实例的tokenParsed对象会包含用户选定的locale字段,直接访问即可:
// 确保已完成登录流程 const userLocale = keycloak.tokenParsed?.locale; // 输出示例:zh-CN、en、fr等 console.log(userLocale);
- 通过加载用户Profile获取
如果ID Token中未包含locale字段,可调用loadUserProfile()方法获取完整用户信息,其中包含locale:
keycloak.loadUserProfile() .then(profile => { const userLocale = profile.locale; console.log(userLocale); }) .catch(err => console.error('获取用户信息失败:', err));
注意事项
如果上述方法无法获取locale,可能是Keycloak客户端未配置locale字段的Token映射:
- 登录Keycloak管理控制台,进入对应客户端的「Mappers」标签
- 添加新映射:选择「User Attribute」类型,属性名填
locale,Token Claim Name填locale - 勾选「Add to ID token」和「Add to access token」选项,保存配置
内容的提问来源于stack exchange,提问作者Adi Dasler
相关产品推荐
相关产品推荐

