我正在使用WSO2 Identity Server 4.1.0来执行基本身份验证。可以调用AuthenticationAdmin webservice,其中包含“loginWithRememberMeOption”。然后,用户将获得一个“rememberMeCookie”,即使他的会话(JSESSION)已过期,他也可以登录。“
我了解到loginWithRememberMeOption也有一个超时:7天,而且这次不能修改:WSO2 Authentication, adding/modifing timeout to the RememberMe cookie
AuthenticationAdmin服务还提供“注销”操作。不幸的是,此操作只会使会话无效。因此,如果用户拥有rememeberMeCookie,他仍然可以登录:WSO2 AuthenticationAdmin Logout
问题是,如何注销已获得rememeberMeCookie的用户?最好使用AuthenticationAdmin?
答案 0 :(得分:0)
根据我的理解,没有直接的方法来注销记住我cookie的用户。
我仔细检查了代码。登录并记住我选项后,会生成UUID
。请参阅AuthenticationAdmin
org.wso2.carbon.core.services.authentication.AuthenticationAdmin.loginWithRememberMeOption(String, String, String)
方法
然后将cookie保存在数据库中。当您使用remember me cookie登录时,将从用户存储中检查cookie。请参阅org.wso2.carbon.user.api.UserStoreManager.isValidRememberMeToken(String, String)
。您可以查看JDBC implementation。
因此,为了注销,您可能必须从用户存储中清除cookie。
如果您认为添加清除Cookie的方法可能有用,请报告JIRA问题。