我想了解网络令牌的概念(JSON网络令牌是特定的)。然而,我无法找到关于如何在服务器上验证令牌的任何信息。
A = CLIENT
B = SERVER
流量:
1)A - > B:客户端发送的用户名和密码
2)B:服务器检查它们对DB记录,如果它们匹配创建;首先,使用签名:base64UrlEncode(标题).base64Url(有效载荷),#秘密#然后令牌使用:signature.payload.secret
3)< - B:服务器发送回令牌客户
4)甲 - > B:客户端发送请求与令牌来访问某些网址在头
5)B:服务器解码头和有效负载,使用#秘密#创建另一个数字签名,并将其与什么被派去确保完整性
比较
如果上面的流程是正确的,它会引起以下问题:
1)是否有SSL缠绕它?如果不是任何人都可以劫持令牌并将其发送给服务器和用户模拟客户端
2)在步骤5中,只检查完整性,从令牌解密的有效负载数据不会根据数据库验证(例如用户名),如果它被验证,或者一旦完整性得到确认,我们可以肯定令牌是有效的,应用程序可以授予客户端访问权限?
3)是#秘密#只有服务器已知并且仅用于验证有效负载未被篡改?我会这样认为,否则用户冒充可能会发生。
完美的,谢谢你的确认。 – Pawel