使用 Secure Social API ,是否可以通过Playframework应用程序了解哪些用户当前已登录?如果是这样的话?
更常见 Play / SecureSocial应用程序中当前登录用户的位置和方式?
答案 0 :(得分:3)
SecureSocial使用AuthenticatorStore插件跟踪经过身份验证的用户。默认实现使用Play缓存,但您可以创建自己的缓存。如果您创建自己的实现,那么您可以决定保存会话的位置,然后查询它以找出您需要的内容。
另一种方法可能是编写EventListener。 SecureSocial会触发登录和注销事件。您可以保留这些事件,这也可以为您提供活动用户。但是,如果用户只是关闭浏览器,则可以在这种情况下松开注销事件。我说依赖AuthenticatorStore是更可靠的,因为Authenticators有一个过期,你可以在运行查询时检查。
答案 1 :(得分:1)
您使用的是Play Framework 2吗?
如果是这样,您可以创建自己的UserService
,如文档中所述:http://securesocial.ws/guide/user-service.html
然后,您可以实现find(Identity)
(在Scala中)或doFind(Identity)
(在Java中)方法,并选择如何记录和存储用户。
事实上,在这些方法中,您必须根据他连接的方式(Twitter,Facebook ...)记录用户。
然后,您还必须实施save(Identity)
(在Scala中)或doSave(Identity)
方法,以便在用户首次使用特定社交网络创建帐户或日志时存储用户。
如果您提供了使用用户名//密码登录的方法,则必须实施findByEmailAndProvider
(在Scala中)或doFindByEmailAndProvider
方法。
因此,如果您控制用户连接到您网站的方式,您可以存储(并检索)已连接的用户。