我想构建一个现代堆栈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服务器一次。
现在我不知道这种设置有什么用。
感谢您的建议和帮助!