在后端(.Net)和前端(角度)之间共享JWT令牌

问题描述 投票:0回答:1

我有一个特定的项目,在该项目中,我将.Net ASP MVC应用程序与Angular 7一起进行前端构建。“特定”是指角度禁用了路由-路由由MVC后端应用程序处理。它返回cshtml视图(并将一些数据传递到script标签),并用角度渲染其视图。

现在的情况是,我想在JWT令牌中包含授权,并且体系结构有问题。

  1. MVC处理路由,因此它应该“知道”令牌,例如,对请求进行自动授权等,

  2. Angular可以使用访问令牌通过API处理业务逻辑

  3. 如果角度收集令牌(传递用户名/密码),后端将无法生成自己的access_token,因为它不知道凭据。并且可能导致两周前/后端的数据不同步

  4. [只有一个应用程序应处理刷新令牌

那么哪个应用程序应该处理从AuthServer收集access_token的过程?什么应该负责刷新令牌?在哪里存储令牌?

有人可以告诉我起点吗?

angular asp.net-mvc architecture jwt authorization
1个回答
0
投票
[通常,使用客户端Angular应用程序获取access_token是危险的解决方案。通过Javascript创建访问令牌时,它会受到多种攻击,包括XSS和XSRF。

当前的最佳实践方法是将用户的凭据安全地发送到服务器端应用程序,并允许其处理身份验证和授权流程。或者,委托给为此方案设计的第三方产品。当您的用户首次尝试访问受保护的客户端视图时,它应该对安全数据执行服务器端请求。应该在服务器端应用程序上为用户创建一个会话,在此期间应提示他们进行身份验证。身份验证完成后,您的服务器应用程序可以选择通过httpOnly和Secure cookie与客户端应用程序共享(和存储)JWT。

使用httpOnly和Secure cookie确保令牌不会与用户浏览器以外的任何人共享。

© www.soinside.com 2019 - 2024. All rights reserved.