我已经在我的react-native项目中启动并运行JWT身份验证。现在我发出的每个请求都会将令牌authorization
包含在标头中。
据我了解,当服务器收到我的令牌时,它将被解码为:
{ sub: user.id, iat: timestamp, email: user.email }
然后服务器将根据user.id
识别我。
但由于标题中只包含令牌,标题中没有userId
,服务器如何知道我真的是那个带有该ID的人?说一个黑客得到我的令牌,那么他可以假装我和服务器对话吗?
答案 0 :(得分:2)
防止此类令牌在途中被盗的常用方法是通过传输级安全性,特别是SSL。在两个系统之间交换令牌之前,首先建立, HTTPS连接。
还有其他可能用于防止令牌盗窃的解决方案,例如Token Binding Protocol和Proof Key for Code Exchange by OAuth Public Clients。
为了提供额外的安全性,令牌通常是有时间限制的。 Reference Tokens可以根据需要撤销,而不必等待他们超时。