2

我正在使用 PhoneGap 创建一个带有 HTML、CSS 和 JS 的移动应用程序。

我需要实现某种身份验证来连接到我的 API - 我认为 OAuth 1 或 OAuth 2 应该可以很好地解决这个问题。

但是,使用 OAuth 1,我需要将消费者机密存储在我的 JS 中,这会将其暴露给任何有脑子的人。

使用 OAuth 2,我可以通过完全不使用一个秘密来避免暴露秘密,而只需提供一个预先在 API 提供者注册的重定向 URL。这保证了用户只被发送回正确的 URL(他们不能被劫持)。

但是,使用 PhoneGap,我无法真正提供重定向 url,因为 PhoneGap url 类似于 file://www/index.html...

如何将 Oauth 1 或 OAuth 2 与移动 HTML5 应用程序一起使用?

4

2 回答 2

4

Libby 有一个关于如何使用 PhoneGap 进行 OAuth 1 的很好的教程:

http://www.mobiledevelopersolutions.com/home/start/twominutetutorials/tmt5p1

至于您的消费者秘密,您可以将其存储在本机代码中,然后使用插件从 JavaScript 的本机端检索它。已经有一个可用于 iOS 的称为Keychain

于 2012-04-27T19:26:48.877 回答
1

对于这个主题的新手,英特尔开发者专区还有一个关于使用 OAuth2 和 PhoneGap/Cordova 的教程。为避免在应用程序中使用客户端密码,您将使用 OAuth2 隐式流程。从上面的链接

以下是在 Cordova* HTML5 应用程序中执行 Oauth2 隐式授权流程所涉及的步骤:

  1. 在 Cordova InAppBrowser 中打开 Oauth2 授权页面
  2. 使用 loadstart 事件侦听器从重定向的 URL 哈希片段中获取 access_token
于 2015-12-01T20:44:07.057 回答