2011-09-22 41 views
0

我想在IFRAME(Facebook應用程序)中登錄Facebook。我被迫重定向到Facebook應用程序中的徽標頁IFRAME

http://apps.facebook.com/oauthtwosample/註銷並點擊「登錄」鏈接。

當重定向權限請求對話框頁面時,響應標題具有位置標題。

Chrome的截圖如下:

http://gyazo.com/0f4988158cb0e0a9f52545374540de96

如果你有任何想法,讓我知道。

來源:

require 'rubygems' 
require 'sinatra' 
require 'oauth2' 
require 'json' 

@@client = OAuth2::Client.new(
    'xxxxxxxxxxxxx', 
    'xxxxxxxxxxxxxxxxxxxxxxxx', 
    :site => 'https://graph.facebook.com' 
) 

def redirect_uri 
    uri = URI.parse(request.url) 
    uri.path = '/auth/facebook/callback' 
    uri.query = nil 
    uri.to_s 
end 

get '/' do 
    '<a href="/auth/facebook">login</a>' 
end 

post '/' do 
    '<a href="/auth/facebook">login</a>' 
end 

get '/auth/facebook' do 
    redirect @@client.web_server.authorize_url(
    :redirect_uri => redirect_uri, 
    :scope => 'email,offline_access' 
) 
end 

get '/auth/facebook/callback' do 
    access_token = @@client.web_server.get_access_token(
    params[:code], 
    :redirect_uri => redirect_uri 
) 
    user = JSON.parse(access_token.get('/me')) 
    user.inspect 
end 

回答

1

這是因爲redirting用戶未經允許,你可以伊斯利 通過添加目標=「_頂」聯繫起來解決這個問題的。

<a href="url" target="_top">login</a> 
+0

我想登錄到IFRAME。 Facebook應用程序的這種不正常的方式? – komagata

+0

好吧,你可以輕易設置它像apps.facebook.com/oauthtwosample/{controller}/{action}例如我的是apps.facebook.com/oauthtwosample/user/callback – Xenon

+0

我試過了(/ auth/facebook/callback change到http://apps.facebook.com/oauthtwosample/auth/facebook/callback),但我有同樣的結果。 (http://gyazo.com/e1a20e21fe0d40f3bf0c41b600cffb06) – komagata

相關問題