Oauth 2.0 分离oauth2和web服务器
假设我的站点是Oauth 2.0 分离oauth2和web服务器,oauth-2.0,spring-security-oauth2,spring-session,Oauth 2.0,Spring Security Oauth2,Spring Session,假设我的站点是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.com oauth.example.com不知怎的知道他登录了web.
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.com
oauth.example.com
不知怎的知道他登录了web.example.com
oauth.example.com
执行其oauth2魔法并将其发送回client.com
oauth.example.com
应该如何检测用户是否使用web.example.com
登录
我正在考虑让web.example.com
在数据库中存储会话数据,并让oauth.example.com
查找数据库
我担心的是,当会话到期时(用户未明确注销),两台服务器可能会失去时间同步
用户(A)可能刷新web.example.com
,发现其会话已过期,并将计算机保持打开状态。另一个用户(B)可能会点击“代码>登录,例如.COM< <代码>和<代码> OAuth.Simult.com >代码>可以考虑<代码>(a)< /代码>用户仍然登录(因为时间没有很好地同步)。p> 将时钟与nptd同步是我能做的最好的事情吗?
还是我应该放弃这个想法,想出别的办法
- 实现细节:我正在考虑spring会话jdbc,不幸的是它没有在每次过期时删除会话数据
oauth.example.com
应该提供登录页面。oauth.example.com
必须是授权服务器()。当web.example.com
请求用户登录时,登录url应重定向到oauth.example.com
登录页面
调用oauth.example.com
提供商登录验证(身份验证),然后返回web.example.com
。如果登录成功,web.example.com
将使用oauth.example.com
切换令牌
我正在考虑让web.example.com在数据库中存储会话数据,并让oauth.example.com查找数据库
您可以在web.example.com
服务器中将Oauth访问令牌和Oauth刷新令牌视为cookie或会话id
我担心的是,当会话到期时(用户未明确注销),两台服务器可能会失去时间同步
oauth.example.com
必须具有撤销令牌api