闽公网安备 35020302035485号
Permify 是一个开源的授权服务,用于在你的个人应用程序和服务中创建和维护细粒度的授权。



function App() {
return <div>React Role Demo</div>;
}
export default App;
index.js 文件内容如下所示:// 堆代码 www.duidaima.com
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<App />);
第二步:UI 界面


[
{
"id": "1fbb807d972847cbb65096a22403bd2f",
"email": "louise@permify.co",
"name": "Louise Walker",
"role": "admin",
"permission": ["project-index", "project-create", "project-delete"]
},
{
"id": "b108ceae1cfb46dfb34e3aa7c9f28606",
"email": "miguel@permify.co",
"name": "Miguel Jensen",
"role": "editor",
"permission": ["content-index", "content-create", "content-delete"]
},
{
"id": "c2349776bd364fac9debf397e3f4538a",
"email": "greg@permify.co",
"name": "Greg Howell",
"role": "agent",
"permission": ["contact-index"]
},
{
"id": "73b612c40a2044718123d476e45a2245",
"email": "leonard@permify.co",
"name": "Leonard Wade",
"role": "agent",
"permission": ["contact-index","contact-create", "contact-delete"]
},
{
"id": "9455a30af8e141ba905a27e7855babde",
"email": "alex@permify.co",
"name": "Alex Collins",
"role": "agent",
"permission": ["contact-index"]
}
]
第四步:添加 React Role
...
import { PermifyProvider } from "@permify/react-role";
function App() {
const [user, setUser] = useState(null);
useEffect(() => {
setUser(JSON.parse(localStorage.getItem("user")));
}, []);
return (
<PermifyProvider>
{user === null ? <Login /> : <Home user={user} />}
</PermifyProvider>
);
}
export default App;
对于主页,如果用户有管理员角色、编辑角色或有联系人创建权限,创建联系人按钮必须是可见的。为了控制用户的角色和权限,我们需要使用 React Role 库中的 HasAccess 组件。...
import { HasAccess } from "@permify/react-role";
...
function Home(props) {
...
return (
...
<HasAccess
roles={["admin", "editor"]}
permissions="contact-create"
renderAuthFailed={null}
>
<div className="button create-btn">Create Contact</div>
</HasAccess>
...
);
}
export default Home;


