查询当前已登录用户的SecureSocial

时间:2014-01-23 18:22:33

标签: playframework securesocial

使用 Secure Social API ,是否可以通过Playframework应用程序了解哪些用户当前已登录?如果是这样的话?

更常见 Play / SecureSocial应用程序中当前登录用户的位置和方式?

2 个答案:

答案 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方法。

因此,如果您控制用户连接到您网站的方式,您可以存储(并检索)已连接的用户。