如何在无状态环境中使用java socialauth? (无需在会话中存储SocialAuthManager)

时间:2013-10-19 06:41:32

标签: api session socialauth

我正在开发基于JavaEE 6的无状态RESTFul API,重要的是不要在会话中存储任何内容。

我正在使用基于socialauth java的社交身份验证提供程序。

我想知道是否有一种方法可以在成功进行身份验证后重新构建SocialAuthManager,而无需从会话中检索它,如文档所述:

session.setAttribute("authManager", manager);

然后:

SocialAuthManager manager = (SocialAuthManager)session.getAttribute("authManager");

我想避免这种情况。 我想做这样的事情:

SocialAuthManager manager = new SocialAuthManager(PARAMS TO REBUILD PREVIOUS AUTH WORKFLOW);

提前致谢。

1 个答案:

答案 0 :(得分:0)

我正在使用此lib的4.10版本开发社交认证。 在用户获得重定向URL并获得授权后,我通过这种方式连接到社交服务:

 AccessGrant accessGrant = manager.createAccessGrant(network.getId(), params);
 Optional<Profile> profile = Optional.ofNullable(manager.connect(accessGrant).getUserProfile());

 manager.disconnectProvider(network.getId());

其中params - 来自成功回调API请求的参数。获取用户配置文件后,我断开管理器重新使用它。使用此方法时也要注意并发性。