我有一个正在尝试转换为nodejs的laravel应用程序。在原始应用中,我们有一个API,该API受到随机生成的令牌的保护 - 分配给每个用户并存储在我们的DB中。当用户首次注册时,我们会自动生成此秘密令牌,然后他们使用它,只要他们想使用我们的服务。(我们使用这些令牌验证用户的订阅详细信息)。
我试图在nodejs上复制相同的内容,但是我对使用的正确身份验证策略有些丢失,因为PassportJS具有JSON Web令牌(JWT)和" Hash"。他们俩看起来都正确,但我无法弄清楚差异,在这种情况下这是最合适的。
如果哈希是正确的策略,我是否必须使用JWT来生成令牌并将其分配给每个用户?可能我还没有正确理解散列和代币的概念。出于身份验证目的,哈希和令牌之间有什么区别?
我做了更多的研究,发现JWT并不是我们使用的内容或我们对应用程序的需求。我们只需根据个人详细信息和秘密密钥为每个用户创建SHA哈希。现在,该哈希是正确创建并在新应用程序中正确使用的。这比我想象的要简单。对于那些想了解更多有关JWT的人,这篇媒介的文章可能会有所帮助:
https://medium.com/vandium-software/5-easy-Steps-to-underding-json-web-tokens-jwt-1164c0adfcec