You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在React中通过Auth0获取用户角色失败的问题排查

前端无法获取Auth0用户角色问题

我无法在前端获取用户的角色。Token Claims日志未显示登录后触发器生效,且Roles日志输出undefined。

前端获取角色的代码尝试

useEffect(() => {
    const fetchUserRole = async () => {
    if (isAuthenticated) {
        try {
            const claims = await getIdTokenClaims();
            console.log("Token Claims:", claims); // Debugging

                if (claims) {
                    const roles = claims[`${namespace}/claims/roles`];
                    console.log("Roles:", roles);

                    if (roles && roles.length > 0) {
                        setRole(roles[0]);
                    }
                }
            } catch (error) {
                console.error("Error fetching role:", error);
            }
        }
    };

    fetchUserRole();
}, [isAuthenticated, getIdTokenClaims]);

触发器配置说明

我创建了一个触发器来附加角色。我记得过去需要通过Rules实现,但在我的仪表盘中找不到该功能。

Auth0仪表盘截图

登录后触发器的自定义代码

exports.onExecutePostLogin = async (event, api) => {
    const namespace = "https://dev-<my-domain>.eu.auth0.com/claims"; // 已替换为我的域名
    console.log("Auth0 Event Data:", JSON.stringify(event, null, 2));

    if (event.authorization && event.authorization.roles.length > 0) {
        console.log("Roles found:", event.authorization.roles);

        api.idToken.setCustomClaim(`${namespace}/roles`, event.authorization.roles);
        api.accessToken.setCustomClaim(`${namespace}/roles`, event.authorization.roles);
    } else {
        console.log("No roles assigned to this user.");
    }
};

内容的提问来源于stack exchange,提问作者Skip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:01:07