使用stormpath web login,一旦用户通过身份验证,当前登录的用户帐户在后续请求中可用,并且可以通过执行以下操作(例如从Servlet中)检索;
Account account = AccountResolver.INSTANCE.getAccount(request);
request
在哪里HttpServletRequest
现在,我需要知道的是,为什么不能为社交登录用户(即使用 google、facebook、linked-in 登录的用户)做同样的事情???
我知道在注册/登录时,可以通过执行以下操作来检索帐户;
String applicationHref = appHref;
String code = request.getParameter("code");
Application application = client.getResource(appHref, Application.class);
ProviderAccountRequest request = Providers.GOOGLE.account()
.setCode(code)
.build();
ProviderAccountResult result = application.getAccount(request);
Account account = result.getAccount();
但事后,做Account account = AccountResolver.INSTANCE.getAccount(request);
总是回报null
。
现在这是一个问题,因为code
仅在登录时可用,不适用于后续请求,因此无法使用上面的代码段。此外,每次必须获取当前登录的帐户时似乎工作量太大。
我无休止地浏览了 Stormpath 文档,但没有找到任何线索……任何想法都将受到高度赞赏。
谢谢。