0

目前正在构建一个 WordPress 内联网站点,该站点使用 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”(这实际上并不能证明太多,只是规则执行没有错误。

4

1 回答 1

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

于 2015-08-25T18:19:34.763 回答