我使用Spring Security OAuth2登录到具有Facebook帐户的已验证用户。一切都很好。然而,我遇到了一个问题,当用户成功登录并单击后退按钮并第二次打开Facebook授权URI时(https://www.facebook.com/v2.8/dialog/oauth)。它再次使用新代码重定向到回调URL/login/oauth2/code/facebook,但这次身份验证失败。Oauth2登录失败处理程序被调用并重定向到默认的失败URL。这是的例外
org.springframework.security.oauth2.core.OAuth2AuthenticationException: [authorization_request_not_found]
因此,问题是第二次身份验证不是由安全oauth2代码启动的,也不需要第二次回调。知道怎么解决这个问题吗?可以忽略第二次回调吗?理想情况下,第二次身份验证也应该成功。
我对这个问题的解决方案是用JavaScript在弹出窗口中打开授权URL(/oauth2/授权/facebook(。弹出窗口将使用JavaScriptpostMessage响应父窗口。