Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 如何将Facebook JavaScript SDK与魔法宝石一起使用_Ruby On Rails 3_Facebook Javascript Sdk_Sorcery - Fatal编程技术网

Ruby on rails 3 如何将Facebook JavaScript SDK与魔法宝石一起使用

Ruby on rails 3 如何将Facebook JavaScript SDK与魔法宝石一起使用,ruby-on-rails-3,facebook-javascript-sdk,sorcery,Ruby On Rails 3,Facebook Javascript Sdk,Sorcery,我遵循了关于使用Facebook处理用户登录的规则 # callback method called by Facebook after getting the authorization by the user if user = login_from(provider) # provider == "facebook" redirect_to root_path #, :notice => "Logged in from #{provider.titleize}!" else

我遵循了关于使用Facebook处理用户登录的规则

# callback method called by Facebook after getting the authorization by the user
if user = login_from(provider) # provider == "facebook"
  redirect_to root_path #, :notice => "Logged in from #{provider.titleize}!"
else
  begin
    user = create_from(provider)
    ...
但是,它只要求我的用户离开我的网站,转到Facebook页面,然后在这里重定向

我想实现的是我在使用Facebook JavaScript SDK时看到的,它是我页面上的一个干净的弹出窗口。为了实现这一目标,我采取了以下措施:

但是,
authResponse
只包含一个
accessToken
和一个
signedRequest
和一个
userid
,而巫术需要一个
code

是否有任何方法可以正确执行此操作(或使用
accessToken
获取
code

但是,authResponse只包含accessToken、signedRequest和userid,而巫术需要代码

是否有正确的方法(或者使用accessToken获取代码?)

在服务器端流程中,
code
只是获取访问令牌的中间步骤–app获取代码,并将代码交换为访问令牌

因为在客户端流中,当访问令牌完成时,您已经获得了一个访问令牌,因此它没有比这更“合适”的了

所以你有两个选择:

  • 或者重构你的巫术东西,让它跳过获取代码并将其交换为访问令牌的步骤,并在获取后直接“设置”访问令牌(巫术可能希望设置它的任何地方);或

  • 坚持服务器端流程,但自己在弹出窗口中打开。然后你仍然会得到代码,但是你会在弹出窗口中得到它。因此,您必须关闭弹出窗口,然后自己重新加载原始窗口


是的,我就是这么想的。最干净的方法是分叉魔法宝石并调整它,因为它不会触发弹出警告(而且看起来更好)。我已经看过代码了,应该不会太难。thanks我同意你的第一个建议,将gem分叉,并对其进行了修改,以接受
访问\u令牌
:谢谢!
$('#sign_in').click (e) ->
  e.preventDefault()
  FB.login (response) ->
    window.location = '/auth/facebook/callback' if response.authResponse