我使用的是SecureSocial 2.0.7,我实现了UserServicePlugin,用户可以登录。我可以停止并重新启动服务器(或重新编译或其他),用户将保持登录状态。
自升级到2.0.12以来,登录会话在服务器重新启动时不会持久。
我已将调试日志记录添加到UserServicePlugin
中的每个方法。用户登录时为saved
。但是,当服务器重新启动,并且我尝试以先前登录的用户身份访问页面时,我只会在日志中看到:
[info] play - database [default] connected at jdbc:postgresql://localhost/xxxxxx
[info] application - [securesocial] loaded templates plugin: sec.SecureSocialViews
[info] play - Starting application default Akka system.
[info] application - [securesocial] loaded user service: class sec.LoginUserService
[info] application - [securesocial] loaded password hasher bcrypt
[info] application - [securesocial] loaded identity provider: userpass
[info] play - Application started (Dev)
[debug] application - [securesocial] calling deleteExpiredTokens()
[debug] application - deleteExpiredTokens
[debug] application - [securesocial] anonymous user trying to access : '/supplier/requests'
有什么想法吗?我想知道是否由于某种原因登录cookie在检查现有登录会话之前就已经开始了...
我正在使用用户名/密码验证。
答案 0 :(得分:4)
用户信息在会话中的存储方式发生了变化。模块现在使用单独的一个而不是使用Play会话cookie。此cookie具有身份验证者ID。用户信息现在存储在服务器端的AuthenticatorStore实现中。默认实现使用Play缓存,这就是您需要在重新编译时再次进行身份验证的原因。正在清除缓存中的数据。
如果您希望在重新编译/重新启动后让用户保持登录状态,您可以: