如何做Android Sync Provider服务器端实现?

时间:2013-05-26 04:51:22

标签: java android rest sync android-syncadapter

我在云端托管了一个基于J2EE的销售点的Web应用程序,数据库正在使用postgresql。现在我正在为Point of Sales构建一个Android应用程序。对于数据sync,我已经阅读了很多关于如何创建SyncAdapter等但很少关于服务器端开发的内容。我的第一个问题:

  1. 如何创建身份验证令牌?谁将创建此AuthToken?我的服务器端RESTful webservice或设备SyncAdapter本身?谁应该启动AuthToken - 设备或服务器webservice到期?

  2. 目前,我的网络应用程序获得了许多用户级权限。当数据来自设备同步时,我需要在同步之前检查用户权限。我是否需要在服务器端webservices内自定义写入这些权限检查?

1 个答案:

答案 0 :(得分:1)

  1. 简而言之,服务器负责创建AuthToken。

    为了更好地理解,您应该阅读OAuth2 specification。虽然您可以编写自己更简单的解决方案,但我建议您使用OAuth2来避免一些陷阱。在您的情况下,身份验证授权类型“Resource Owner Password Credentials”似乎是最合适的。

    Apache Oltu是一个在Java中实现OAuth2的框架,但您仍需要处理一些事情,例如持久性你自己的代币。

  2. 是的,您必须检查服务器端的权限。不要相信客户!
    除此之外,您可以通过在Android中使用不同的令牌类型来更严格地限制应用程序。例如:当您从服务器应用程序和Android应用程序访问Web服务时,您可以根据令牌类型(Android与内部)区分权限。或者,您可以为应用程序的用户提供一个选项,限制应用程序仅访问读取操作。