Angular2共享并保护所有组件中的用户安全数据

时间:2017-01-20 16:18:17

标签: security angular typescript

我有一个angular2应用程序,通过OAuth2使用密码授予类型进行身份验证。我将会话令牌存储在sessionStorage上,我需要存储更安全的其他数据,如用户当前角色。

我知道我可以在sessionStorage或localStorage中存储更多信息,但这很容易被用户修改。虽然真的,如果用户修改了sessionStorage,我的后​​端是安全的,因为根据用户角色检查令牌。

如果用户修改了他的角色,他会看到一些隐藏的选项,我不想要这个。

我想到了两个解决方案,我想听一些提示。

  1. 保存sessionStorage加密的角色,有关此问题的建议?我应该使用什么加密?
  2. 有一个像docs那样的全局服务,由我的navbar-component使用并在ngOnInit上加载数据(因为路由)。
  3. 有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:1)

我们的仪表板中有与您相同的案例。

接近第二个选项有点乱,因为你需要考虑如果用户重新加载页面会发生什么。 重新加载页面时的服务将丢失数据,您将不知道用户的角色在哪里。 您可以通过在init时在应用程序组件中运行http来解决此问题。

对于加密的情况,请阅读: https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage

目前我们使用全球服务的方法。 (服务是Singelton)