2015-08-23 86 views
0

目前正在構建一個WordPress內部網站點,該站點使用Auth.0 SSO對用戶進行了對公司Azure AD的身份驗證。 SSO的功能正常,但我試圖通過使用Auth.0的「規則」來進一步細化訪問控制。理想的結果是一條規則,該規則根據來自AD的職位標題,用用戶角色指定(更新)用戶的WP Profile。下面的代碼已經從Auth.0的規則模板之一進行了修改,並且運行乾淨。但是,它不起作用 - 我不確定我需要什麼特定的參數/函數來實際更新WordPress中的角色。我會直言不諱地承認我對JS的熟練程度遠遠不夠。有什麼想法嗎?在SSO中使用Auth.0規則有條件地設置WP用戶角色

function (user, context, callback) { 
    if (user.job_title === 'IT/Marketing Coordinator') { 
    user.vip = true; 
    } 
    callback(null, user, context); 
    } 

在上面的例子中,它成功地將「user.vip」爲「true」(這實際上並不能證明太多不同之處在於規則的執行沒有錯誤。

回答

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 DOC有用:https://codex.wordpress.org/Function_Reference/wp_update_user

相關問題