我有两个 Django 应用程序,
app1
和 app2
,它们都使用相同的数据库并在不同的端口上运行(localhost:8000
和 localhost:8010
)。当我登录到app1时,我希望用户也自动登录到app2。目前,这两个应用程序都使用数据库会话引擎,但我尚未配置缓存。我计划设置 Redis 进行缓存和会话管理,以实现两个应用程序之间的会话共享。
如果您希望用户同时登录app1和app2,您可以将他们设置为使用Redis共享会话数据。基本上,您需要配置这两个应用程序以使用 Redis 进行会话存储。在两个应用程序的 settings.py 中,只需将 SESSION_ENGINE 指向 Redis,并确保两个应用程序使用相同的 Redis 实例。
此外,通过在 settings.py 中设置相同的 SESSION_COOKIE_NAME 和 SESSION_COOKIE_DOMAIN 来确保两个应用程序共享相同的会话 cookie。不要忘记对两个应用程序使用相同的 SECRET_KEY,这样会话加密就不会被破坏。
设置完成后,当用户登录 app1 时,他们也应该自动登录 app2,因为他们将共享来自 Redis 的会话信息。快速测试一下,确保一切都正确同步!