使用 OmniAuth 的正确方法是什么?在开发 Facebook 选项卡时进行设计?

发布于 2024-12-24 02:11:44 字数 149 浏览 2 评论 0原文

我正在开发一个简单的 Facebook 应用程序,该应用程序将位于页面的选项卡中。我正在尝试找出验证用户身份的最佳方法。看起来正常的页面重定向是不正确的,这就是 OmniAuth + Devise 开箱即用的方式。如何使用 JavaScript SDK 的身份验证对话框来实现此功能?

I'm developing a simple Facebook app that will live in a Page's tab. I'm trying to figure out what the best method is for authenticating users. It seems that normal page redirection isn't right, which is how OmniAuth + Devise do it out of the box. How can I make this work with the JavaScript SDK's auth dialog?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁吢 2024-12-31 02:11:44

正如 DMCS 所说,FB.getLoginStatusFB.login 将在 JS 方面完成此操作。至于将其与 devise/omniauth 连接起来,假设您使用的是最新的omniauth,其中特定于提供者的逻辑已被分割成自己的gems,facebook-omniauth Github 页面对此进行了如下解释:

客户端流程支持从 Facebook 放入 cookie 的签名请求中解析授权代码。这意味着您可以像平常一样使用 Facebook Javascript SDK,一旦用户在 FB.login 成功回调中进行身份验证,您只需点击回调端点(默认为 /auth/facebook/callback)即可。

现在这很好很容易。 FB.login 后,一个简单的 window.location.href = '/auth/facebook/callback' 就可以了!

As DMCS said, FB.getLoginStatus and FB.login will do it on the JS side of things. As for hooking it up with devise/omniauth, assuming you're using the latest omniauth where provider-specific logic has been split out into their own gems, the facebook-omniauth Github page explains it as so:

The client-side flow supports parsing the authorization code from the signed request which Facebook puts into a cookie. This means you can to use the Facebook Javascript SDK as you would normally, and you just hit the callback endpoint (/auth/facebook/callback by default) once the user has authenticated in the FB.login success callback.

Now thats nice and easy. After the FB.login, a simple window.location.href = '/auth/facebook/callback' will do the trick!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文