2

我正在使用 Cordova 3.0.9 和 Rails 后端开发移动应用程序。

现在我正在实现身份验证部分,并且能够在 InAppBrowser 插件的帮助下实现客户端 Facebook 身份验证并获取用户的访问令牌。

我的问题是,因为我使用 Omniauth 进行服务器身份验证,并且需要使用 signedRequest 作为参数向我的回调端点(/auth/facebook/callback)发出发布请求,以便 Omniauth 发挥其魔力:

如何在不使用 JS SDK 的情况下从 Facebook 获取 signedRequest 令牌,可能需要对某个 url 进行简单的获取请求。 通常这将通过 FB.getLoginStatus 请求来完成,但我无法管理它以在移动环境中工作。

提前致谢。

4

1 回答 1

1

我设法完成了我想要的。

碰巧在初始请求发送到

/auth/facebook

使用来自 facebook 的访问令牌,他然后调用

/auth/facebook/callback

使用来自omniauth 的signedRequest 令牌完成身份验证。

一旦我在我的 Rails 后端的会话控制器上,我可以检查请求对象以找到令牌,以及发送到第一个请求的初始参数。

这样我就可以找到

"omniauth.params"=>{"format"=>"json", "provider"=>"facebook", "code"=>"..."} 

当从我的应用程序发送请求时,相应地用 json 响应。

于 2014-01-06T15:32:52.967 回答