要实现保存用户名而不是'sub',可以使用Auth0的规则功能。规则允许您在用户登录和注册期间自定义身份验证过程。
以下是一个示例规则,将用户名存储在用户元数据中:
function (user, context, callback) {
user.user_metadata = user.user_metadata || {};
user.user_metadata.username = user.name;
auth0.users.updateUserMetadata(user.user_id, user.user_metadata)
.then(function(){
callback(null, user, context);
})
.catch(function(err){
callback(err);
});
}
上述代码会在用户登录或注册后触发。它将从用户对象中获取用户名,并将其存储在用户元数据的username字段中。然后,使用Auth0提供的updateUserMetadata方法将更新后的用户元数据保存回Auth0。
要将此规则添加到Auth0,请按照以下步骤操作:
现在,当用户登录或注册时,用户名将被保存在用户元数据中,而不是默认的'sub'字段中。您可以使用Auth0的管理API或Auth0的SDK来访问和使用保存的用户名。