我正在开发一个 MEAN 堆栈应用程序,目前正在设置一个帐户系统。我看过几个关于身份验证的教程,全部使用JWT.
我想知道 JWT 是否可以用作通过非安全连接(如 HTTP)来保护通信传输的方法?
我已经设置了 HTTPS 从 Angular 4 前端到 NodeJS + Express 后端进行通信,因此想知道是否需要 JWT 来保护我的通信?
JWT 不应与加密相混淆。从jwt.io https://jwt.io/introduction/:
JSON Web Token (JWT) 是一个开放标准(RFC 7519) https://www.rfc-editor.org/rfc/rfc7519定义了一个
紧凑且独立的方式安全地传输信息
各方之间作为 JSON 对象。
JWT 使用公钥/私钥对进行签名,因此可以验证发送者,并验证有效负载未被修改。但是,JSON Web 令牌是明文形式的。
var token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ";
var payload = token.split('.')[1];
console.log('Payload: '+atob(payload))
Below is a figure from jwt.io https://jwt.io/introduction/ showing the authentication flow when using JWT.
您需要 SSL/HTTPS 才能encrypt的沟通。如果没有 SSL/HTTPS,攻击者可以嗅探网络流量并获取 JWT,因此您的应用程序很容易受到中间人攻击。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)