gpt4 book ai didi

javascript - AngularJS + 音位间隙 : access to Facebook login/SDK without a server

转载 作者:行者123 更新时间:2023-12-03 12:11:50 25 4
gpt4 key购买 nike

我正在构建一个 web 应用程序(稍后我将使用 Phonegap 部署它),后端使用 NodeJS,前端使用 AngularJS,并且我正在尝试使用 Facebook 身份验证。Node 服务器在 localhost:3000 上运行(稍后它将在 www 上的服务器上运行),AngularJS 应用程序在 localhost:8100 上运行。我正在使用 ngFacebook ( https://github.com/GoDisco/ngFacebook ) 来处理 Facebook SDK。

要使用Facebook身份验证,在开发过程中将Facebook中的App Domain设置为“localhost”就可以了,效果很好。我可以在前端获取访问 token ,将其存储在后端,检查它是否有效,使用 Web token 通过 Express 验证 session 等...

但是我无法将应用程序域用于phonegap应用程序,因为它不在服务器上运行(我猜它在webview上运行,如file://etc...)。

有谁知道解决办法吗?我查看了 Facebook 应用程序设置,我可以添加平台(android、iOS、paget 选项卡?),但我认为这不是最好的方法。另外,在“高级”选项卡上有一些选项似乎可以处理它(我可以设置这是 native 应用程序还是桌面应用程序,它给我一个客户端 token 等...)但文档中没有任何内容说出真正要做什么。

更新:我用尤金尼奥的答案解决了这个问题。我删除了 ngFacebook 并开始使用这个实现 http://blog.geniuspods.com/2013/10/15/how-to-use-facebooks-oauth-with-phonegap/请注意:桌面浏览器的窗口中不存在 loadstart 事件(仅适用于 InnAppBrowser)。因此,在开发过程中,我使用 postMessage 在开启窗口和弹出窗口之间进行通信,因为它们位于不同的域。

最佳答案

您必须使用InAppBrowser

基本上:

  1. 打开新的应用内浏览器,在新窗口中登录 Facebook
  2. 使用回调函数注册一个loadstart事件监听器,以便在URL更改时触发
  3. 登录后,FB 会将您重定向到本地主机,并在 URL 中包含访问 token 。 URL 重定向触发,您必须在callback 方法上解析访问 token

关于javascript - AngularJS + 音位间隙 : access to Facebook login/SDK without a server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24933728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com