我有一个健身移动应用程序的想法,并且我一直在基于这个想法为 iPhone(基于 Obj-C)、Android(基于 java)、WebOS(基于 html5)和 Nokia Qt 开发应用程序。
我现在需要向我的应用程序的用户提供身份验证。服务器是一个典型的LAMP系统。我希望我的移动应用程序的用户能够无缝、安全地登录服务器。
我并不是真正的网络程序员,因此希望了解如何提供身份验证的想法。我听说过 OpenID...但我不确定它是否可以用于验证移动客户端。有人提到了 OAuth,但我不确定 a) 它是否适用于此用例以及 b) 如果我的客户没有 Facebook/Twitter 帐户怎么办?
任何想法将不胜感激!
最佳答案
我做了类似的事情,并使用 gnuTLS 和 x.509 证书从客户端进行身份验证。它无缝且易于集成。
https://idlebox.net/2009/apidocs/gnutls-2.6.6.zip/gnutls_7.html#SEC65
对我来说使用此方法的重要一点是 https 连接只是简单的方法调用,握手过程本身将由 gnuTLS 库处理。
我的应用程序是一个 iOS 应用程序,我使用 xcode 来完成它,这很简单。我认为 Java 方面会更容易,但我不确定诺基亚部分。编码采用 C 语言,因此是跨平台的。
但是,如果您正在寻找基于 iOS 的解决方案,我建议 http://developer.apple.com/library/ios/#samplecode/AdvancedURLConnections/Introduction/Intro.html
但是对于需要跨所有应用程序使用相同证书并且不需要用户输入或工作的跨平台解决方案,我仍然建议使用 gnuTLS 并使用 x509 证书。
关于authentication - 移动应用程序 : how do I provide client authentication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7580048/