我正在尝试在
我调用一个服务器方法来检查用户权限,并只在该方法返回
由于此服务器调用是异步的,因此组件不会呈现。通常我使用状态来管理这个异步调用,但我不想在这里暴露任何状态(不希望有人更改状态并访问管理员仪表板)。
以下是代码:
react
和Meteor
中仅当当前用户是管理员时显示管理仪表板。我调用一个服务器方法来检查用户权限,并只在该方法返回
true
时呈现管理员组件。由于此服务器调用是异步的,因此组件不会呈现。通常我使用状态来管理这个异步调用,但我不想在这里暴露任何状态(不希望有人更改状态并访问管理员仪表板)。
以下是代码:
export default class AdminChecker extends Component {
isItAdmin() {
// Get the id of current user
const userId = Meteor.userId();
if (userId) {
// call a server method which returns true if current user is Admin
Meteor.call('checkAdminId', userId, (err, authorized) => {
if (err) {
console.log(err);
return null;
}
return (authorized) ? <AdminDashboard /> : null;
});
}
}
render() {
return (
<div className="admin-temp-container">
{this.isItAdmin()}
</div>
);
}
}
我认为可以将这个逻辑放在父组件中,并将isItAdmin
的结果作为prop发送到adminDashboard
(只有当props为true
时,adminDashboard
组件才会显示信息)。
但我不确定这是否安全。是否可以使用Chrome React开发者工具或类似工具更改props?
非常感谢。