我正在开发基于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);
提前致谢。
答案 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请求的参数。获取用户配置文件后,我断开管理器重新使用它。使用此方法时也要注意并发性。