我正在使用PhoneGap创建一个包含HTML,CSS和JS的移动应用程序。
我需要实现某种身份验证才能连接到我的API - 而且我认为OAuth 1或OAuth 2可以很好地完成这项工作。
然而,对于OAuth 1,我需要将消费者秘密存储在我的JS中,这会将其暴露给任何有大脑的人。
使用OAuth 2,我可以通过不使用一个秘密来揭露秘密,并简单地提供一个预先注册到API提供商的重定向URL。这保证了用户只能被发送回正确的URL(它们不能被劫持)。
但是,使用PhoneGap,我无法真正提供重定向网址,因为PhoneGap网址类似于file://www/index.html ...
如何在移动HTML5应用中使用Oauth 1或OAuth 2?
答案 0 :(得分:4)
Libby有一个关于如何使用PhoneGap执行OAuth 1的好教程:
http://www.mobiledevelopersolutions.com/home/start/twominutetutorials/tmt5p1
至于您的消费者秘密,您可以将其存储在本机代码中,然后使用插件从JavaScript本机端检索它。已经有一个可用于iOS的名为Keychain。
答案 1 :(得分:1)
对于本主题的新手,英特尔开发人员专区也有tutorial on using OAuth2 with PhoneGap/Cordova。为避免在应用程序中使用客户端密钥,您将使用OAuth2隐式流。从上面的链接
以下是在a中执行Oauth2隐式授权流程所涉及的步骤 Cordova * HTML5 app:
- 在Cordova InAppBrowser中打开Oauth2授权页面
- 使用loadstart事件侦听器
从重定向的URL哈希片段中获取access_token 醇>