我正在尝试在 Twitter 的 servlet 上运行 OAuth 实现。我在将用户重定向到 Twitter 身份验证页面时遇到问题。当我收到回调时,它会返回到 servlet,但 session 不同,因为请求来自 Twitter 而不是我的 Web 应用程序。
我尝试使用encodeRedirectURL 让 session 持续到外部站点,但这不起作用。需要帮助!
最佳答案
您必须将 session ID 添加为回调 URL 的 jsessionid
片段。 Twitter必须回调http://example.com/callbackservlet;jsessionid=1E6FEC0D14D044541DD84D2D013D29ED (注意:这里的 jsessionid 值只是一个示例)。
HttpServletResponse#encodeRedirectURL()
当客户端已经支持 cookie 时(和 encodeURL()
)不会对 URL 进行编码。您需要自己对其进行硬编码。
String url = "http://example.com/callbackservlet";
String encodedURL = url + ";jsessionid=" + request.getSession().getId();
关于java - Servlet 编码重定向URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3674108/