javascript - 浏览器开发工具中显示的用户详细信息
问题描述
我有一个使用 javascript 的 rails 应用程序。现在,当用户在应用程序中登录时,我可以在浏览器开发工具的 Network->Preview 部分看到所有用户详细信息(电子邮件、密码、电话等)。有没有办法将它隐藏在rails中?所以当我打开浏览器开发工具时,我看不到用户详细信息。我在前端使用 React js。
解决方案
据我了解,这是一个授权问题。您可能希望为您的用户设置不同的角色,并根据这些角色决定要显示的内容。
您可以使用策略来定义允许每个用户访问哪些内容。为此,您可以使用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
本文对 Rails 应用程序中的授权进行了更深入的讨论
推荐阅读
- java - 线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:索引 0 超出 RMI 长度 0 的范围
- laravel - Laravel 表单返回,共享主机上的 500 服务器错误
- java - javax.xml.stream.FactoryConfigurationError:在 Quarkus 单元测试执行中找不到提供程序 com.bea.xml.stream.MXParserFactory
- geoserver - GeoServer 可以支持带有会话故障转移的主动/主动集群吗?
- elasticsearch - 如何将输出保存在新索引中?
- mongodb - 无法使用 ElasticSearch Nest Client 查询 MongoDB.Bson.ObjectId
- .net - .NET Core Process.Start 报告默认的 contextIsolation 已弃用。为什么我会收到此警告?
- typescript - VSCode 没有显示内联打字稿错误
- r - 如何在不使用 strsplit 的情况下反转 R 中字符串中的单词?
- django - 通过视图从一个模型到第二个模型获取图像并在枕头中复制并保存到新路径,如何在 html 中获取新路径 img 和旧路径 img