【发布时间】:2018-02-21 23:48:56
【问题描述】:
假设我的网站是example.com
当client.com 的用户想要通过example.com 登录时(使用oauth2)
他来到
oauth.example.com/authorize和oauth.example.com知道他没有登录到web.example.com。oauth.example.com将他重定向到web.example.com他登录到
web.example.com,然后被重定向回oauth.example.comoauth.example.com不知何故知道他登录到web.example.comoauth.example.com使用它的 oauth2 魔法并将他发送回client.com
我的问题是,oauth.example.com 应该如何检测用户是否使用 web.example.com 登录。
我正在考虑让web.example.com 将会话数据存储在数据库中,并让oauth.example.com 查找数据库。
我担心的是,当会话到期时(没有用户显式注销),两台服务器可能会失去时间同步。
用户 (A) 可能会刷新 web.example.com 并发现他的会话已过期并让计算机保持打开状态。
另一个用户 (B) 可能会单击 login with example.com 和 oauth.example.com 可能会认为 (A) 用户仍处于登录状态(因为时间没有很好地同步)。
将时钟与 nptd 同步是最好的吗?
还是我应该放弃这个想法并想出其他东西?
- 实现细节:我正在考虑使用 spring-session-jdbc,不幸的是它不会在每次到期时删除会话数据。
【问题讨论】:
标签: oauth-2.0 spring-security-oauth2 spring-session