使用cookie或jwt将auth服务器与api(mern堆栈)分离?

时间:2019-02-20 19:01:12

标签: node.js authentication cookies jwt passport.js

我想构建一个现代堆栈Web应用程序(游戏),在该应用程序中,静态文件由nginx提供,而nodejs在api和游戏服务器本地运行。现在,我有第二台服务器(aws),我希望我的用户使用nodejs + express + passportjs进行身份验证,并且仅使用google,facebook,twitter等...没有电子邮件/密码。 Nginx将用户重定向到将具有子域的第二台服务器。

自一周以来,我试图找到最佳方法来验证用户身份,同时让用户访问api,同时将auth和api服务器分离。原因是api和游戏服务器足够复杂,我不希望在该服务器上也有auth部分。我还想建立某种商店,供用户购买东西并存入硬币等。

首先,尽管我将使用jwt,因为我有两个服务器,并且在api服务器上,我可以简单地验证令牌是否正确。但是我对jwt的了解越多,就越应该避免使用jwt,因为过期,如何保护令牌等。即使Auth0也建议使用普通的cookie。

然后,尽管我将使用cookie和带有dynamodb的express-session作为会话存储。由于身份验证服务器具有子域,因此我可以在主域中使用此cookie。为了验证cookie,我将使用不带策略的passportjs,并使用带有秘密的快速会话。由于存在快速会话,因此将存在touchInterval和ttl,并且不应允许api服务器更改它们,但用户只能连接到auth服务器一次。

现在我不知道这种设置有什么用。

感谢您的建议和帮助!

0 个答案:

没有答案