我有两台服务器,
nodejs
服务器,已经有一个验证模块,修改代码的自由度很小,我添加了一个模块,为serverB提供了一个令牌密钥。nodejs
服务器,不在生产中,更自由地更改代码,因为它不应该有独立的身份验证模块,依赖于来自serverA的令牌密钥来验证用户。我使用crypto
模块进行令牌生成,并且在serverA和serverB中使用了相同的密码种子。
这有效,但令牌钥匙未到期困扰我。但是,服务器是独立的,因此服务器时间不会同步,因为一些疏忽,甚至可能相隔几天。
然后,我遇到了redis
,现在正在读它,以前没用过它。
如果我在serverB上运行redis
数据库,并且serverA在其中设置了过期令牌,并且serverB会针对它检查每个传入的令牌请求,该怎么办?这是使用redis
的正确方法,会有什么不利之处,最重要的是,这会导致任何安全漏洞吗?
答案 0 :(得分:1)
根据我对node和redis的经验,我认为这对你的案例来说可能是一个很好的解决方案,但是如果你有太多的请求,我建议有2台redis服务器 - 非常容易设置 - 每台服务器一台服务器,其中serverA是主服务器,serverB是从服务器,当serverA需要设置令牌时,它将使用其本地redis服务器设置它,同时serverB可以使用其ttl查看新密钥并相应地执行操作,关于安全性,我认为你有两个选择,你可以在redis连接上设置密码,或者在使用的端口上阻止访问-6379是默认的 - 在防火墙级别或服务器级别,如果你真的不想扩展你的结构我建议阻止访问。