[英]How to use JWT for a proxy server written using Node.js?
这绝对是一个新手问题,我是Node.js初学者。
我不确定,这是问这个问题的正确地方。 但是我可能需要这个庞大社区的想法。 因此,让我解释一下我要做什么。
服务器配置:
场景:
我正在使用hapijs在nodejs中编写代理服务器。 我的后端是基于ATG的电子商务网站,并且我的api将被网络浏览器,移动应用等使用。
我们计划不将ATG发送的cookie发送到浏览器和移动设备。
因此,为了维护ATG的会话和cookie,这就是我们进行POC的方式。
首先,我们计划不考虑存储从ATG返回的匿名用户cookie。 因此,我们完成了两个POC。
(我们很多人都知道,匿名cookie是什么,如果我用一个词-Guest Checkout的话,让我解释一下。有很多方法可以实现这一点。但是我的Commerce Backend是这样实现的,当我们转到在网站上,您将商品添加到购物车并在没有登录的情况下签出该商品吗?每当我们添加商品时,它们只会存储在您的浏览器Cookie中,而不会存储在持久性数据库中,无论如何用户都想登录/注册从浏览器检索cookie并将其存储在数据库中的帐户(基本上,匿名购物车已转移到已登录的用户。)
POC-1(不考虑访客结帐):
要访问我的api,用户必须先登录,成功登录后,我们会生成一个rand-token并将其存储在与ATG为已登录用户发送的cookie关联的Redis db中,并将ttl设置为1小时后返回给客户的那个令牌
现在,无论何时调用任何api方法,都应在授权标头中发送令牌,我将检查令牌的有效性,并再次扩展ttl 1小时,并检索与该令牌关联的cookie,然后在ATG请求选项中设置该cookie并提出要求。
3.注销后,我将清除cookie并删除令牌。
通过在jwt有效负载中生成带有用户登录信息的JWT令牌,我已经成功实现了JWT。 使用了hapi-jwt-auth2。
POC-2(带有维护来宾Cookie),
我的API将具有终结点/ auth / generatesession,这将返回一个64字节的随机令牌(为此我们使用rand-token npm模块),该令牌将在24小时后失效。
所有方法都需要将访问令牌在授权标头中传递回给我,我将把令牌ttl延长到24小时。
现在,他们可以调用任何api方法,例如addtocart或其他方法,即使在将项目添加到cart之后,突然他们也想登录,或者我可以使用其访客会话cookie并在成功登录后将该cart转移到持久数据库。
问题:
抱歉,如果这个问题太长,请以我的解释方式为准。
提前致谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.