angular - 客户是否可以在 Angular 中查看我的 TypeScript 类并在部署后更改它们?
问题描述
我现在在 Visual Studio Code 上使用 Angular 9。
我有一项服务可以保存有关用户的秘密数据(如用户 ID)。
当我将部署我的项目并开始使用我的项目时 -
客户是否有权更改我的类和其中的数据?
示例 - 我有一个保存用户 ID 的服务:
export class LoginService
{
userid;
username;
constructor(private http: HttpClient, private router: Router)
{
}
// ...
}
部署后,客户端将有权更改 LoginService 属性(用户 ID、用户名),
否则他不能这样做?
我问是因为我想为不同的组件重用服务属性,
并且如果用户有权更改服务中的属性 - 这很糟糕。
谢谢。
解决方案
客户端可以访问存储在客户端的所有内容,因此从技术上讲,他们可以更改任何内容,尽管这并不容易,因为代码已被缩小。
如果用户没有有效的令牌,您可以使用身份验证保护来保护您的路由并将用户重定向到登录页面。这可以在允许用户进入应用程序的私有部分之前检查一次,您不必发出特定的 http 请求来检查每次路由更改时的令牌。
登录后获得令牌后,应随每个 API 请求(例如使用 HttpInterceptor)发送它并检查服务器端。如果令牌无效或过期,则抛出错误,并从前面捕获错误并重定向到登录页面
推荐阅读
- r - 在 R 的一个文件夹中的多个 xml 文件上运行循环
- javascript - 如何使用将多个值传递给服务器使用 node.js 标记和访问
- django - Django taggit:为什么 annotate(same_tags=Count('tags')) 计算的是常用标签的数量而不是标签的总数?
- python - Python - Pynput 按键似乎与实际按键不同
- bash - 如何找到名称包含多个相同字符的文件?
- html - 带有 svg 的剪辑路径 - 如何更改剪辑位置或大小
- git - 没有关于将提交从一个分支移动到另一个分支的图表,很难理解材料
- performance - phpmailer 库花费了太多时间
- mysql - 如何获得每个工作日的平均金额?(MySQL)
- react-native - 材料下拉错误proptypes到prop.types