2011-08-09 50 views
0

我想我的用戶重定向至Facebook的授權申請頁面,通過重定向他們Facebook身份驗證:HttpServletResponse.sendRedirect(URL)不同於直接在瀏覽器中輸入URL?

https://graph.facebook.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope={permission_scope}

當我直接輸入網址到瀏覽器,它涉及到右頁:出現一個對話框詢問用戶是否接受允許我的申請。

但是當我通過發送重定向服務器要求:

response.sendRedirect("https://graph.facebook.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope={permission_scope}"); 

它向用戶發送到頁面與大Facebook的標誌。如果用戶點擊徽標,它將顯示正常的授權頁面。

我在想我是否在我的回覆中錯過了一兩件事,這使得結果與直接在瀏覽器中輸入不同。有沒有人有同樣的問題?

+2

難道他們防止302個重定向?我可以看到這種情況,因爲中間頁面允許用戶「將自己重定向到」目標頁面。 – Jeremy

回答

2

這是因爲你不能有一個包含Facebook域的頁面的應用程序iFrame(在apps.facebook.com上)。

您需要使用JavaScript做你的重定向:

response.getWriter().println(
    "<script>" + 
    "top.location.href = \"https://graph.facebook.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope={permission_scope}\"" + 
    "</script>" 
); 
+0

輝煌!萬分感謝 :) –

相關問題