目前正在构建一个WordPress Intranet站点,该站点使用Auth.0 SSO对公司的Azure AD进行身份验证。 SSO功能正常,但我正在尝试使用Auth.0的“规则”更精细地进行访问控制。理想的结果是一个规则,该规则根据来自AD的作业标题,使用用户角色指定(更新)用户的WP配置文件。下面的代码已经从Auth.0的规则模板之一修改,并运行干净。但是,它不起作用 - 我不确定我需要什么特定的参数/函数来实际更新WordPress中的角色。我会站在前面,并承认我远没有精通JS。有什么想法吗?
function (user, context, callback) {
if (user.job_title === 'IT/Marketing Coordinator') {
user.vip = true;
}
callback(null, user, context);
}
在上面的例子中,它成功地将“user.vip”设置为“true”(除了规则执行没有错误之外,它确实没有多少证据。
答案 0 :(得分:1)
正如你所说的那样,这个规则很好,并且会添加这个属性。
问题是你需要从wordpress端做一些工作才能使它工作(用户有一个vip标志对WordPress没有任何意义)。
您可以做的是挂钩每次用户登录时触发的auth0_user_login操作,并根据用户配置文件设置/更改用户角色。
这就是你对行动的勾解:
add_action( 'auth0_user_login', 'auth0UserLoginAction', 0,5 );
function auth0UserLoginAction($user_id, $user_profile, $is_new, $id_token, $access_token) {
...
}
我认为您会发现此WP文档对更新用户角色很有用:https://codex.wordpress.org/Function_Reference/wp_update_user