【发布时间】:2016-01-07 07:05:14
【问题描述】:
在我的应用程序中,用户可以更改他们的用户名。如果用户更改了他们的用户名方式,则特定用户帐户应从所有设备中注销。 即使在移动应用程序中也是如此。
为此我做了以下事情,
-
更改用户名后,我将删除服务器中特定用户名的access_token和refresh_token。
Collection<OAuth2AccessToken> tokenCollection = tokenStore.findTokensByUserName(principal.getName()); for (OAuth2AccessToken oToken : tokenCollection){ tokenStore.removeAccessToken(oToken); tokenStore.removeRefreshToken(oToken.getRefreshToken()); } - 如果用户从移动应用程序访问,首先我会检查 access_token 是否无效,然后我会检查 refresh_token。如果两者都无效,我会将用户重定向到登录页面。 在移动应用中运行良好。
但如果用户通过PC方式登录,则需要处理以下情况。
场景是: - 手机App修改用户名后,如果用户在PC上进行任何活动,会报“500 Internal Server Error”或“XML description of authentication failed”。 p>
如何处理?请帮忙解决这个问题。
【问题讨论】:
-
信息不足。您的应用程序是无状态的吗?如果是普通的面向会话的web应用,需要销毁会话。
-
我的应用程序只有普通的面向会话的 Web 应用程序。我想知道如何销毁会话?哪里需要销毁会话(在浏览器或服务器端)?请给出解决方案。
-
session.invalidate();应该在服务器端执行。
标签: java android spring spring-security mobile-application