我使用grails spring安全性和用于Facebook身份验证的自定义auth方法:

def auth() { 
    ... 
} 

当我在浏览器中检查cookie时,可以看到关闭浏览器 session 后cookie生存期已结束。仅当我使用插件中的默认登录/身份验证操作时,才会设置持久性RememberMe cookie。

我必须做些什么更改,以使在我的自定义身份验证方法下登录的用户不会在 session 之间注销?

对于重新认证,我使用:
def success() { 
 
    // get facebook user data 
 
    springSecurityService.reauthenticate username 
 
    if(springSecurityService.loggedIn) { 
            // do something 
 
    } 
} 

如何设置RememberMe Cookie?

请您参考如下方法:

想法:让Spring Security记住我的服务知道应该考虑成功登录。

  • 在您的Facebook成功操作中,成功通过身份验证后,请执行以下操作:
    //wire remember me services 
    def rememberMeServices 
     
    //... in your action: 
    springSecurityService.reauthenticate username 
     
    def authentication = SecurityContextHolder.context.authentication 
    rememberMeServices.loginSuccess(request, response, authentication) 
    
  • 在您的Config.groovy中添加
  • ,添加以下内容
    grails.plugins.springsecurity.rememberMe.alwaysRemember = true 
    

  • 评论关闭
    IT序号网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!