我正在开发一个MERN应用程序,它需要每个公司的动态子域(例如companyname.localhost)。
DANGEROUSLY_DISABLE_HOST_CHECK=true
在我的.env
文件中。
当用户在localhost:3000登录时,会创建Cookie并对用户进行身份验证。如果用户在特定公司注册,则应在保持登录状态的同时将其重定向到companyname.localhost。但是,重定向到子域时,在localhost上创建的所有Cookie都会丢失,用户将再次重定向到登录页面。我希望Cookie在子域上保留并使用户保持登录状态。有人可以帮助我解决此问题吗?谢谢。
1条答案
按热度按时间iqxoj9l91#
禁用主机检查并不安全,因为它会使您的应用容易受到DNS重新绑定攻击。相反,您应该配置代理服务器来处理您的子域。
关于重定向后cookie丢失的问题,这是因为cookie是特定于域的。如果为localhost设置了cookie,则只能在localhost上访问它。同样,为特定子域设置的cookie只能在该子域上访问。
要使您的cookie在子域上可访问,您需要将cookie的域属性设置为父域。在您的情况下,您应该将域属性设置为“.localhost”而不是“localhost”。
例如,当使用JavaScript设置cookie时,您可以像这样设置domain属性:
这将使cookie可在localhost的所有子域上访问,包括
companyname.localhost
。我希望这能帮助你解决你的问题。