为了账号安全,请及时绑定邮箱和手机立即绑定

休息服务器应该如何管理用户启用?

休息服务器应该如何管理用户启用?

沧海一幻觉 2021-12-01 19:09:19
我有一个使用 javaee 7 和 react/redux 应用程序的 rest java 后端。n 个不同的客户使用相同的应用程序。每个客户可以要求 m 个与其他客户的角色不同的角色。例如,一位客户可以付费查看列表中另一位客户不应该看到的列。问题是.. 是否有一种模式或方法可以轻松处理隐藏或显示列表中的列或隐藏/显示表单中的字段的可能性?(用户启用)CUSTOMER X 付费查看客户列表中的电话号码客户 Y 根本不应该看到电话号码。两者发布的应用程序是相同的。服务器应该如何将此信息提供给前端应用程序而不与其耦合?谢谢。后来又补充了一个问题:是的,反应部分很清楚。我将添加一些信息以更清楚。重点是“如果我想从创建表单中隐藏电话号码字段?” 服务器应该如何将此信息提供给前端?它应该发送一个空的数据对象吗?
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

这是一个简化的示例,但它应该为您提供有关如何根据用户角色有条件地获取和呈现数据的基本概念。

  1. 前端调用API端点AUTH数据(userId以及token在此实例中)

  2. 后端根据身份验证数据确定角色,返回与此角色相关的数据(例如,phone如果他们的角色允许,则包括)

  3. 前端呈现响应数据(例如,"Hidden"如果phone不存在则呈现)

以下是您的React组件的外观:

class CustomerList extends Component {

    constructor(props) {

        super(props);

        this.state = {

            customers: []

        };

    }

    componentDidMount() {

        // fetch list data

        fetch('https://myapi.com/api/getCustomers', {userId: 12345, token: someToken})

            .then(res => res.json())

            .then(response => {

                this.setState({customers: response.customers});

            });

    }

    render() {

        const { customers } = this.state;

        return (

            <div className="customers">

                {customers.length && 

                    <ul>

                        {customers.map(customer => (

                            <li>

                                <div className="name">

                                    Name: {customer.name}

                                </div>

                                <div className="phone">

                                    Phone: {customer.phone || "Hidden"}

                                </div>

                            </li>

                        ))}

                    </ul>

                }

                {!customers.length && 

                    <div>Loading...</div>

                }

            </div>

        );

    }

}

角色只是一种建议。您可以在后端通过其他方式确定当前用户有权查看哪些数据。关键是你返回给前端的数据应该只包含用户有权查看的数据。您不应该返回所有数据,然后在前端有条件地呈现它。


查看完整回答
反对 回复 2021-12-01
  • 1 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信