在PhoneGap应用程序上对我的node.js服务器执行授权(通过facebook)REST请求

Tom*_*Tom 5 authentication android facebook node.js cordova

由于这个问题涉及三种技术,我想快速介绍它们中的每一种:

  • node.js:服务器端的javascript(认为是我的webserver)
  • PhoneGap:允许我用HTML/Javascript/CSS编写Android应用程序的框架.
  • facebook身份验证:使用everyauth让我的用户使用他们的Facebook帐户登录

目标:我需要我的PhoneGap应用程序使用基于REST的协议与我的服务器通信.许多这些请求只能在用户使用他们的Facebook帐户登录我的服务器时进行.因此,用户需要登录然后转到PhoneGap应用程序的登录状态.

问题:当我为facebook设置everyauth时,我基本上有一个URL,例如domain.com/auth/facebook,它将重定向到Facebook的登录"弹出窗口".当用户接受登录时,服务器将知道,到目前为止一切都很好.问题是

  1. 用户现在必须被重定向到某个外部URL,而他应该只是回到PhoneGap应用程序(在登录状态)
  2. PhoneGap应用程序不检索身份验证令牌,或者身份验证是否成功,因为登录过程在外部URL domain.com/auth/facebook中完成,而PhoneGap应用程序的HTML存储在手机本身上并从中运行

问题的原因:这个问题出现的原因是它不适用于普通的Web应用程序,是PhoneGap应用程序的HTML文件存储并从手机本身运行,而身份验证通过domain.com/auth/facebook,这被认为是成为一个不同的领域.

建议的方法#1:PhoneGap用户建议我将这个Android-Facebook插件用于PhoneGap.这里的问题是服务器不充当身份验证中间人.因此,用户必须通知服务器他们的认证令牌而不是通常的方法,其中服务器通知用户成功的认证过程和相应的令牌.这似乎是一个严重的漏洞.

我该如何解决这个问题?

Pau*_*ien 3

借助ChildBrowser 插件,PhoneGap 应用程序可以监控身份验证站点的位置变化。

我们使用这种方法将 PhoneGap 应用程序与node.js openid 模块集成