Max*_*ent 7 node.js jwt mean-stack angular
我正在开发一个MEAN堆栈应用程序,我目前正在建立一个帐户系统.我已经看过几个关于身份验证的教程,都使用JWT.我还看到JWT是通过HTTP等非安全连接保护通信传输的好方法.
我已经设置了HTTPS来从我的Angular 4前端到我的NodeJS + Express后端进行通信,因此,想知道JWT是否有必要保护我的通信?
JWT不应与加密混淆.来自jwt.io:
JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间作为JSON对象安全地传输信息.
JWT使用公钥/私钥对进行签名,因此可以验证发件人并验证有效负载未被修改.但是,JWT是明文.
var token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ";
var payload = token.split('.')[1];
console.log('Payload: '+atob(payload))Run Code Online (Sandbox Code Playgroud)
下面是jwt.io中的图,显示了使用JWT时的身份验证流程.

您需要SSL/HTTPS来加密通信.没有SSL/HTTPS攻击者可以嗅探网络流量并获取JWT,因此您的应用程序容易受到中间人攻击.
是否需要通过 HTTPS 通信使用 JWT?
不。通信协议(HTTP 与 HTTPS)是一回事,身份验证机制(JWT 与会话)是另一回事——这是两个完全不同的领域。
对于通信协议(HTTP 与 HTTPS),HTTPS 可以单独使用,无需任何 JWT 令牌或会话。例如,可以制作静态网站(仅 HTML+CSS)并使用 HTTPS 提供服务。这样,网站就可以通过CA认证,防止伪造攻击。
即使您需要在 Web 应用程序中进行身份验证,JWT 令牌也不是唯一的选择。Session 是旧技术,但它仍然可靠,这使得 JWT 绝对没有必要。
| 归档时间: |
|
| 查看次数: |
4290 次 |
| 最近记录: |