我将nodejs用于rest api,并且客户端应用程序同时在ios和android中使用。
通常,服务器会生成或签名JWT,然后将其发送到设备。设备将其保存在本地,并用于后续请求。
但是我打算在我的应用程序中实现自定义JWT方案。
计划是为设备本身中的每个请求创建一个令牌,并在服务器中对其进行验证。
因此,当黑客窃取密钥时,由于JWT无效,他甚至无法使用一次。
此外,令牌发行客户端无法再次请求使用相同的令牌。
这项工作还是我应该遵循JWT实施的一般标准。有专家的想法吗?
如果是,我有几个问题
1)从客户端设备检索密钥(或背后的逻辑)是否可行并损害安全性
2)服务器性能是否会降低
答案 0 :(得分:0)
从客户端设备检索密钥不是一个好习惯,这将来会成为安全威胁。
如果要在您的情况下创建自定义JWT,则可以开发一个rest服务并将其命名为auth服务,该服务将用于身份验证。您可以使用必要的数据调用身份验证服务,并在后端可以验证传递的详细信息。
此后,您可以相应地使用到期时间创建自己的JWT,并将其作为响应传递,可用于其他rest调用,直到到期为止。