我正在开发一个Android应用程序,它消耗我将开发的Web服务(我正在考虑使用RESTFul web服务)..我想确保应用程序和服务器之间的连接,但我也需要对用户进行身份验证. .
我的问题是在最后一部分,为了保证连接,我认为最好的方法是使用SSL(https),我错了吗?
我不知道对用户进行身份验证的"最佳方式"是什么,以确保用户不能将web服务作为另一个用户使用..我有一些想法,比如在webservice上使用authenticate(login,pass)方法返回对于任何需要身份验证的操作,用户需要将该令牌作为参数传递..问题是,这是一个很好的方法吗?在这种情况下,用于授权用户的最常用技术是什么?
如果基于令牌的身份验证是一个好主意我应该如何生成令牌?
抱歉这篇长篇文章..
任何帮助都是有用的
谢谢
在走这条路之前,请确保您了解像OAuth这样的时尚标准.大多数OAuth流程都以用户通过Web浏览器登录服务器为中心.这可能会导致移动应用的用户体验非常糟糕.该标准确实允许替代方案.这是一个不错的介绍.
您还可以使用现有的身份提供商,如Google,Facebook,Twitter等,而不是实现您自己的authN/authZ.在Android上,您可以使用AccountManager请求Google身份验证令牌.这通常有效,因为用户需要登录其Google帐户才能访问Android电子市场.无论如何,这将提示用户授予您的应用程序授权.然后,您可以使用Google身份验证令牌使用您自己的令牌将用户登录到您的服务.登录本质上是您的服务器验证Google令牌有效(通过联系Google的服务器),然后发出自己的令牌用于调用您的Web服务.如果您不喜欢Google,可以使用Facebook SDK等.
至于用于令牌的内容...... OAuth规范也有相关内容.您可以做一些像随机字符串这样简单的事情,或者像加密的SAML断言一样复杂的事情.