Я вынужден перенаправить на страницу логотипа в приложении Facebook IFRAME - PullRequest
0 голосов
/ 22 сентября 2011

Я хочу войти на Facebook в IFRAME (Facebook Apps).

Перейдите 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 Ответ

1 голос
/ 22 сентября 2011

Это из-за перенаправления пользователя без разрешения вы можете легко решить эту проблему, добавив target = "_ top" к ссылке.

<a href="url" target="_top">login</a>
...