【问题标题】:User details being displayed in the browser dev tools浏览器开发工具中显示的用户详细信息
【发布时间】:2018-11-22 11:34:53
【问题描述】:

我有一个使用 javascript 的 rails 应用程序。现在,当用户在应用程序中登录时,我可以在浏览器开发工具的 Network->Preview 部分看到所有用户详细信息(电子邮件、密码、电话等)。有没有办法将它隐藏在rails中?所以当我打开浏览器开发工具时,我看不到用户详细信息。我在前端使用 React js。

【问题讨论】:

    标签: javascript ruby-on-rails reactjs


    【解决方案1】:

    据我所知,这是一个授权问题。您可能希望为您的用户设置不同的角色,并根据这些角色决定要显示的内容。

    您可以使用政策来定义每个用户可以访问哪些内容。为此,您可以使用pundit gem。为控制器操作定义授权机制非常有用。

    如果不同的用户可以访问相同的路由,但您需要隐藏其中一些字段/详细信息,您应该将 current_user 传递给您的序列化。例如,如果您使用Active Model Serializers gem,则需要将 current_user 添加到您的序列化程序的范围内:

    class ApplicationController < ActionController::Base
      serialization_scope :current_user
    end
    

    然后使用该范围显示用户详细信息:

    class UserSerializer < BaseSerializer
      attribute :name # Everyone can see
      attribute :email do # Only admins can see
        user = scope
        if user
          if user.admin?
            object.email
          end
        end
      end
    end
    

    This article 深入讨论 Rails 应用中的授权

    【讨论】:

      猜你喜欢
      • 2018-02-17
      • 2019-09-23
      • 1970-01-01
      • 2020-05-01
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多