首页 > 解决方案 > 客户是否可以在 Angular 中查看我的 TypeScript 类并在部署后更改它们?

问题描述

我现在在 Visual Studio Code 上使用 Angular 9。
我有一项服务可以保存有关用户的秘密数据(如用户 ID)。
当我将部署我的项目并开始使用我的项目时 -
客户是否有权更改我的类和其中的数据?

示例 - 我有一个保存用户 ID 的服务:

export class LoginService 
{
  userid;
  username;

  constructor(private http: HttpClient, private router: Router)
  {
  }

  // ...
}

部署后,客户端将有权更改 LoginService 属性(用户 ID、用户名),
否则他不能这样做?
我问是因为我想为不同的组件重用服务属性,
并且如果用户有权更改服务中的属性 - 这很糟糕。
谢谢。

标签: angulartypescriptdeployment

解决方案


客户端可以访问存储在客户端的所有内容,因此从技术上讲,他们可以更改任何内容,尽管这并不容易,因为代码已被缩小。

如果用户没有有效的令牌,您可以使用身份验证保护来保护您的路由并将用户重定向到登录页面。这可以在允许用户进入应用程序的私有部分之前检查一次,您不必发出特定的 http 请求来检查每次路由更改时的令牌。

登录后获得令牌后,应随每个 API 请求(例如使用 HttpInterceptor)发送它并检查服务器端。如果令牌无效或过期,则抛出错误,并从前面捕获错误并重定向到登录页面


推荐阅读