我想在auth0中创建一个规则,该规则会将用户的语言添加到用户的ID令牌中。那么有什么方法可以实现?我可以从geoip获取国家代码和其他一些信息,但是我在任何地方都无法获得语言
答案 0 :(得分:1)
如果您还没有该语言,则可以在注册过程中使用Lock中的additionalsignupfields
选项显示语言下拉菜单,以收集用户的语言。然后,用户将在注册期间选择一个选项,并且所选值可以保留在user_metadata
中。
或者,您可以使用JavaScript定制登录页面以检测用户的浏览器语言,然后使用该值自动填充Lock中的additionalsignupfield
。必要时我们甚至可以将其设为隐藏字段。
一旦存储在user_metadata
中,我们就可以将其添加到id_token
中,例如:
function(user, context, callback) {
// copy user metadata value in id token
context.idToken['http://examplesite/user_lang'] = user.user_metadata.user_lang;
callback(null, user, context);
}