在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实现,但在我的仪表盘中找不到该功能。

登录后触发器的自定义代码
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
相关产品推荐
相关产品推荐

